我是动作脚本2.0的新手,我想要的是使用匿名函数中的局部变量
var count = 0;
var evtObject = new Object();
Key.addListener(evtObject);
evtObject.onkeypress = function()
{
if(Key.UP == Key.getCode())
{
// here i want to use the count value., count++;
trace(count);
}
}
if块中我想使用计数值。即使知道它不起作用,我在onkeypress的匿名函数中使用它,它显然显示 undefined 。请帮助我完成这个。
答案 0 :(得分:1)
这里我给出了将局部变量用于函数的简单示例请参考此代码..
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class keylister
{
var alldisplay:MovieClip;
var left:uint = 37;
var up:uint = 38;
var right:uint = 39;
var down:uint = 40;
var pickUpsArray:Array = new Array();
for (var i = 0; i < alldisplay.numChildren; i++ )
{
if(alldisplay.getChildAt(i) is littleheart)
{
pickUpsArray.push(alldisplay.getChildAt(i));
}
}
public function keylister(Display:MovieClip)
{
alldisplay = new MovieClip();
alldisplay = Display;
alldisplay.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener);
alldisplay.addEventListener(Event.ENTER_FRAME, PickUpItems);
}
public function keyDownListener(e:KeyboardEvent):void
{
if (e.keyCode == 37)
{
alldisplay.box_mc.x-=10;
}
if (e.keyCode == 38)
{
alldisplay.box_mc.y-=10;
}
if (e.keyCode == 39)
{
alldisplay.box_mc.x+=10;
}
if (e.keyCode == 40)
{
alldisplay.box_mc.y+=10;
}
}
public function PickUpItems(e:Event):void
{
for (var j = 0; j < pickUpsArray.length; j++ )
{
if (alldisplay.box_mc.hitTestObject(pickUpsArray[j]))
{
alldisplay.removeChild(pickUpsArray[j]);
}
}
}
}
}