FlexGlobals.topLevelApplication不适用于变量。怎么修?

时间:2014-03-16 18:34:51

标签: actionscript-3 flex air flex4 flex-spark

它的工作原理:FlexGlobals.topLevelApplication.addElement(item); 但事实并非如此:

public var app:Object = FlexGlobals.topLevelApplication;
trace(app) //it's null
app.addElement(item);

错误:无法访问空对象引用的属性或方法。

为什么它不能通过变量工作?

修改 它的工作方式如下:

private function bekleticiEkle():void{
    var app:Object = FlexGlobals.topLevelApplication;
    trace(app) //it's testClientApp0
    var item:Label = new Label;
    item.text = "Test";
    app.addElement(item);
}

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。我们必须在创建应用程序时定义它。首先,使用它:

private var app:Object;
protected function init(event:FlexEvent):void
{
    app = FlexGlobals.topLevelApplication;
}
private function doSomething():void
 trace(app)
}

答案 1 :(得分:0)

处查看此行

public var app:Object = FlexGlobals.topLevelApplication;

应该是

public var app:Object = new object(); app = FlexGlobals.topLevelApplication;