# addChild(myInput); # stage.focus = myInput;
# 最后一行的代码设置文本输入光标在文本域内。
# 文本域默认为单行,你可以用 multiline 属性改变它的状态。但是,对于大多数输入文本来说,我们只用一行就可以了,注意,在这里输入文本后按回车键不会换行。但是,我们可以用这个键来捕获信号,即当该按键(字符码为 13)被按下或弹起时来触发侦听函数实现一定的功能。
#myInput.addEventListener(KeyboardEvent.KEY_DOWN, checkForReturn);
# function checkForReturn(event:KeyboardEvent) { # if (event.charCode == 13) { # acceptInput(); # } # }
# 这个 acceptInput 函数把文本内的字符theInputText 字符串变量中, 然后在输出窗口中显示出来,谭后在一处这个文本,代码如下: # function acceptInput() {
# var theInputText:String = myInput.text; # trace(theInputText); # removeChild(myInput); # }
# 根据本人测试结果, 键盘事件为 KEY_DOWN 可以输出结果, KEY_UP 却不能显示结果。 但百思不得其解,请高手指点。 ****** *
**9--帧频事件运动.txt ***** **
FLASHAS3.0—帧频事件运动
(10) 2.3 创建动画 接下来,我们就开始来创建动画了,并用他们来模拟真实世界的运动。 2.3.1 帧频事件运动
* 我们通过设置影片剪辑的 x, 的坐标, y 来改变他们在屏幕的位置是非常容易的。 如果我们想使这个影片剪辑运动起来,并给它设置一特定的速度运动,这时就需要用到 *
* ENTER_FRAME 事件了。例如,你可以在舞台上绘制一个任意图形,并转换为影片 剪辑,类名为 Hero,下面,我们就通过一小段程序复制库中 Hero 的一个副本,并且让他每 帧移 *
* 动一个像素,代码如下: * var hero:Hero = new Hero(); * hero.x = 50; * hero.y = 100;
* addChild(hero);
* addEventListener(Event.ENTER_FRAME, animateHero); * function animateHero(event:Event) { * hero.x++; * }
* 现在,测试影片可以看到,这个 hero 角色开始从屏幕坐标(50,100)处每帧以一个像素的速度水平向右移动,如果想让该影片剪辑每次移动 10 个像素的话,代码改为 *
* hero+=10
* 注意:你还可以通过改变舞台属性面板上的帧频来控制对象的运动速度, 系统默认值为每秒 12 帧,你可以更改该值为[1,60]内的任意数。事实上,你如果选择了帧频为 *
* 60 的话,并不意味着影片每秒运行 60 帧,如果该影片剪辑比较大,并且你的机器比较慢,那么,他将达不到 60 帧。对此,我们有一个更好的办法来解决这个差距,就是用下面介绍的基于时间的动画来处理。 *
* 下面,来试作一个练习。在游戏的过程中,我们经常遇到任务行走,这个问题的 flash 中怎么解决的呢?不必担心,其实这个很简单,首先用动画制作的方法制作一个影片剪辑,该影片剪辑有 8 帧,从第二帧到第八帧为步行的一个循环,每帧代表不同的 步进,第一帧作为站
立的位置被保留。制作完成以后,在时间轴内输入下面的帧频事件和帧频函数,在函数内,我们将要创建该角色每帧在水平位置移动 7 像素,后面的条件 代码是检测该影片剪辑的当前帧数,如果为 8 帧的话,它将要返回的第二帧继续运动,否则,它继续下面的一帧。源代码如下: * var hero:Hero = new Hero(); * hero.x = 100; * hero.y = 200; * addChild(hero);
* addEventListener(Event.ENTER_FRAME, animateHero); * function animateHero(event:Event) * {
* hero.x += 7;
* if (hero.currentFrame == 8) * {
* hero.gotoAndStop(2); * } else * {
* hero.gotoAndStop(hero.currentFrame+1); * } * } ****** *

