0

これはおそらく本当に簡単ですが、私はオンラインで答えを見つけることができません。これが私が持っているものです:

<fx:Script>
        <![CDATA[
            protected function DestIsAirport(event:MouseEvent):void {
                navigator.pushView(AirportSelector);
            }
            protected function DestIsAddress(event:MouseEvent):void {
                navigator.pushView(DestinationInfoView);
            }
        ]]>
</fx:Script>

そのすぐ下にポップアップコンテナがあり、次のようになります。

<fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
        <fx:Component className="DestAlert">
            <s:SkinnablePopUpContainer x="50" y="200">
                <s:TitleWindow title="Destination">
                    <s:VGroup horizontalAlign="center" verticalAlign="middle" paddingTop="8" paddingBottom="8" paddingLeft="8" paddingRight="8" gap="5" width="100%">
                        <s:Label text="Is your destination an airport?"/>
                    </s:VGroup>
                    <s:HGroup horizontalAlign="center" verticalAlign="middle" paddingTop="40" paddingBottom="8" gap="5" width="100%">
                        <s:Button label="Yes" bottom="10" left="10" width="100" fontSize="16" click="DestIsAirport(event)"/>
                        <s:Button label="No" bottom="10" right="10" width="100" fontSize="16" click="DestIsAddress(event)"/>
                    </s:HGroup>
                </s:TitleWindow>
            </s:SkinnablePopUpContainer>
        </fx:Component>
    </fx:Declarations>

2つのボタンでAS3スクリプトとは異なる機能を実行したいと思います。これにより、エラーが発生します。1180:未定義の可能性があるメソッドDestIsAddressを呼び出します。1180:未定義の可能性があるメソッドDestIsAirportを呼び出します。

これらのボタンでこれら2つの機能を実行するにはどうすればよいですか?

ソースファイル全体:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark" title="Enter Pick Up Address">

    <fx:Script>
        <![CDATA[
            protected function button1_clickHandler(event:MouseEvent):void
            {
                navigator.popView();
            }
            protected function DestIsAirport(event:MouseEvent):void {
                navigator.pushView(AirportSelector);
            }
            protected function DestIsAddress(event:MouseEvent):void {
                navigator.pushView(DestinationInfoView);
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
        <fx:Component className="DestAlert">
            <s:SkinnablePopUpContainer x="50" y="200">
                <s:TitleWindow title="Destination">
                    <s:VGroup horizontalAlign="center" verticalAlign="middle" paddingTop="8" paddingBottom="8" paddingLeft="8" paddingRight="8" gap="5" width="100%">
                        <s:Label text="Is your destination an airport?"/>
                    </s:VGroup>
                    <s:HGroup horizontalAlign="center" verticalAlign="middle" paddingTop="40" paddingBottom="8" gap="5" width="100%">
                        <s:Button label="Yes" bottom="10" left="10" width="100" fontSize="16" click="close()"/>
                        <s:Button label="No" bottom="10" right="10" width="100" fontSize="16" click="close()"/>
                    </s:HGroup>
                </s:TitleWindow>
            </s:SkinnablePopUpContainer>
        </fx:Component>
    </fx:Declarations>
    <s:actionContent>
        <s:Button label="Back" click="button1_clickHandler(event)"/>
    </s:actionContent>
    <s:TextInput top="6" horizontalCenter="-1" prompt="Address Line 1"/>
    <s:TextInput top="47" horizontalCenter="-1" prompt="Address Line 2"/>
    <s:RadioButton top="90" label="IL - Illinois" horizontalCenter="-94"/>
    <s:RadioButton top="90" label="WI - Wisconsin" horizontalCenter="72"/>
    <s:SpinnerListContainer bottom="60" width="320" height="211" horizontalCenter="0">
        <s:SpinnerList width="317" height="100%" labelField="data" selectedIndex="0">
            <s:ArrayList>
                <fx:Object data=""></fx:Object>
                <fx:Object data="Abbott Park"></fx:Object>
                <fx:Object data="Addison"></fx:Object>
                <fx:Object data="Algonquin"></fx:Object>
                <fx:Object data="Alsip"></fx:Object>

    </s:ArrayList>
        </s:SpinnerList>
    </s:SpinnerListContainer>
    <s:Button bottom="10" width="302" label="Next" click="(new DestAlert()).open(this, false)"
              fontSize="24" horizontalCenter="0"/>
</s:View>
4

2 に答える 2

1

宣言セクションは、ユーザーが表示しないもののみを対象としています。あなたはいくつかのことをする必要があります。

  1. 宣言セクションのコンポーネントを取得し、それを独自のファイルに移動します。
  2. ポップアップマネージャを介してコンポーネントのインスタンスを表示します。

さらに、コンポーネントと親は完全に異なるスコープにあることに注意することが重要です。ただし、ポップアップコンポーネントの新しいインスタンスを作成した後、そのインスタンスへの参照を使用してリスナーを追加できます。コンポーネントは、このクラスがリッスンできるイベントをディスパッチして、関数を呼び出すことができます。

popupmanagerは静的クラスであり、ここで追加したコードとは関係がないため、これはさらに複雑になります。写真がきちんと整っているような気がするので、もっと説明が必要な場合はお知らせください。

于 2012-06-14T21:15:10.913 に答える
0

別のアクションscript/mxmlファイルを作成してみませんか?それはその問題を簡単に解決するでしょう。

于 2012-06-14T19:03:11.387 に答える