动作脚本 2 在匿名函数中使用局部变量
Posted
技术标签:
【中文标题】动作脚本 2 在匿名函数中使用局部变量【英文标题】:action script 2 use local variables inside anonymous function 【发布时间】:2017-10-30 21:12:41 【问题描述】:我是动作脚本 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。请帮我解决这个问题。
【问题讨论】:
“我是动作脚本 2.0 的新手” 开始花时间使用 ActionScript 3.0,它还会让您为其他类 C 语言做好准备(例如:Java、C#、Swift 等)...无论如何:if(Key.UP == Key.getCode())
试图实现什么? Key.UP
是当一个键停止被按下(释放)时,那么Key.getCode()
会是等于吗?您在寻找“向上”箭头键吗?
【参考方案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]);
【讨论】:
这看起来像 AS3 代码。提问者正在使用 AS2。此外,is littleheart
之类的东西在测试时也会导致像 "Undefined..." 这样的错误。最好修复 Asker 自己提供的示例代码。以上是关于动作脚本 2 在匿名函数中使用局部变量的主要内容,如果未能解决你的问题,请参考以下文章
python函数(全局变量,局部变量,作用域,递归函数,高阶函数,匿名函数)