动作脚本2在匿名函数中使用局部变量

时间:2017-05-30 11:50:49

标签: flash actionscript actionscript-2 anonymous-function

我是动作脚本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 。请帮助我完成这个。

1 个答案:

答案 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]);
            }
        }
    }   


    }

   }