无法访问Actionscript中函数外部的变量?
我有两个函数返回一个值无法访问Actionscript中函数外部的变量?,actionscript,functional-programming,scope,Actionscript,Functional Programming,Scope,我有两个函数返回一个值 protected function createbox():player { var face:player = _world.CreateBody(bodydef); return face; } 除了返回不同的变量外,它们是相同的。一个回脸,另一个回眼睛 它们是这样执行的: _elements.push(new Item(createbox(), new B
protected function createbox():player
{
var face:player = _world.CreateBody(bodydef);
return face;
}
除了返回不同的变量外,它们是相同的。一个回脸,另一个回眼睛
它们是这样执行的:
_elements.push(new Item(createbox(), new BoxSprite()));
元素被创建。但当我试着提及脸或眼睛时,问题就来了。我不知道如何引用它们。它们不会出现在变量的调试列表中。它们是空值(在其函数之外)
项是一个类文件。这也是一个函数
public function Item(body:player,sprite:Graphic)
\u elements
是一个向量数组。
player
是一个类
我不知道访问面部和眼睛的语法。无论您在何处访问它们,它们总是返回NULL或找不到属性。尝试创建全局变量。全局变量在函数定义内部和外部都可用。因此,请尝试在函数外指定变量,并在函数内更新其值 见示例:
var face:String = "This is created out of the function";
function scopeTest(){
face = "This was updated inside the function";
}
scopeTest();
trace(face);
根据您的帖子,脸和眼睛是createbox()的返回对象,然后参与到Item对象的实例化过程中,然后将其推送到_elements向量中。因此,为了访问人脸和眼睛,必须在Item类的构造函数期间将这些对象传递给一些公共引用。之后,您应该能够通过枚举向量中想要的项对象并在项对象上使用点语法来访问它们