在Actionscript中无法访问变量外部函数?

时间:2015-03-07 03:48:16

标签: actionscript functional-programming scope

我有两个返回值的函数。

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)

_elements是一个矢量数组。 player是一个类

我不知道访问面部和眼睛的语法。无论您在何处访问它们,它们始终返回NULL或未找到的属性。

2 个答案:

答案 0 :(得分:0)

尝试创建全局变量。函数定义内部和外部都可以使用全局变量。因此,尝试从函数中分配变量并在函数内更新其值。

参见示例:

var face:String = "This is created out of the function"; 
function scopeTest(){ 
    face = "This was updated inside the function";
} 
scopeTest(); 
trace(face);

答案 1 :(得分:0)

根据你的帖子, faces eyes 是来自 createbox()的返回对象,然后它们参与了一个实例化过程。 Item 对象,然后将其推入 _elements 向量。因此,为了访问 faces eyes ,您必须在 Item 类的构造函数中将这些对象传递给某些公共引用。之后,您应该能够通过在向量中枚举所需的 Item 对象并在 Item 对象上使用点语法来访问它们。