如何从我制作的类中引用WindowedApplication?

时间:2011-11-12 01:30:46

标签: flex actionscript

我正在使用Flex 4.5,并且已将我写入的自定义类导入主MXML文件。

在类文件中,我希望能够使用TitleWindow创建PopUpManager,如下所示:

package classes {
    import components.*; // My custom components
    import mx.managers.PopUpManager;

    public class SomeClass {
        public function showPopUp():void {
            PopUpManager.createPopUp(this,NewProjectPrompt,true);
        }
    }
}

NewProjectPrompt是我制作的自定义组件。编译器给出了以下错误:

1067: Implicit coercion of a value of type classes:Project to an unrelated type flash.display:DisplayObject.

这是因为this未指向WindowedApplication。如何使.createPopUp()中的第一个参数指向WindowedApplication

2 个答案:

答案 0 :(得分:2)

此代码有效!

公共功能showPopUp(){
   PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject,NewProjectPrompt,true); }

答案 1 :(得分:1)

如果您的WindowedApplication文件名为“MyApp.mxml”,那么您可以将组件中的引用写入它:

MyApp(this.parentApplication)

这将返回实际的WindowedApplication,您可以调用其公共方法,或者在需要时将其粘贴到变量中。