私が作成したクラスの中からWindowedApplicationを参照するにはどうすればいいですか?

Flex 4.5を使用しています。メインMXMLファイルに書き込んだカスタムクラスをインポートしました。

クラスファイルの中で、このように PopUpManager を使って TitleWindow を作成したいと考えています:

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

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

NewProjectPrompt is a custom component I made. The compiler is giving me the following error:

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

これは、 thisWindowedApplication を指していないためです。 .createPopUp()の最初のパラメータを WindowedApplication をポイントするにはどうすればよいですか?

1

2 答え

このコードは動作します!

public function showPopUp(){
   PopUpManager.createPopUp(FlexGlobals.topLevelApplicationをDisplayObject、NewProjectPrompt、true)とします。 }

2
追加された
ありがとうございました!!これはうまくいった。 :Dしかし、親切な提案として、もう少し説明していただければ幸いです。私はアドビのサイトで、あなたが何を言っているのかを詳しく説明する素敵な記事を見つけました(これと同じ質問がある人は誰でも): help.adobe.com/en_US/flex/using/…
追加された 著者 Titus,

WindowedApplicationファイルの名前が "MyApp.mxml"の場合、コンポーネントからの参照を次のように記述します。

MyApp(this.parentApplication)

これにより、実際のWindowedApplicationが返され、パブリックメソッドを呼び出すか、必要に応じて変数にスティックすることができます。

1
追加された
私はこれを試しましたが、Flex 4.5は parentApplication を認識しません。最も近い一致は parentObject でしたが動作しませんでした。
追加された 著者 Titus,
使用できるトップレベルメソッドを持つWindowedApplicationとしてアクセスする必要がある場合は、この var myApp:MyApp = FlexGlobals.topLevelApplication MyApp; のような変数を使用できます。
追加された 著者 Paul Mansfield Keefe,