从包类访问WindowedApplication

时间:2010-05-20 05:15:42

标签: flex actionscript-3 air

我正在开发一个AIR应用程序,我需要访问它 WindowedApplication的函数来自包类。

这是主要应用程序(部分代码)

<mx:WindowedApplication  xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute" creationComplete="initApplication()">
<mx:Script>
    <![CDATA[

 import mx.events.CloseEvent;
 import messages.MessageWindow
public function undock():void {

        stage.nativeWindow.visible = true;
        stage.nativeWindow.orderToFront();

        //Clearing the bitmaps array also clears the applcation icon from the systray

        NativeApplication.nativeApplication .icon.bitmaps = [];
    }

  ]]>
</mx:Script>
</mx:WindowedApplication>

包裹:(部分代码)


package messages
{
  public class MessageWindow extends NativeWindow
  {

    public function MessageWindow():void
    {

     stage.addEventListener(MouseEvent.MOUSE_DOWN,onClick);

    }
    private function onClick(event:MouseEvent):void
    {
        ****** Need to call the undock method from here. *****

    }
  }

}

是否可以这样调用或建议任何其他解决方案

提前致谢 Senling。

2 个答案:

答案 0 :(得分:1)

不明白为什么它不起作用。来吧试一试,如果出现任何错误,请在此处发布。

你可以尝试的是在MessageWindow方法中在stage前面添加parentApplication,就像这样..

parentApplication.stage.addEventListener(MouseEvent.MOUSE_DOWN,onClick);

然后从onClick()方法调用undock()方法

答案 1 :(得分:1)

即使我不建议您进行代码设计,也可以像下面这样访问您的方法: Application.application.undock() (如果你的undock()方法在WindowedApplication中公开)