0

メニューを最初に実行するときだけ表示する必要があるAIRアプリケーションを開発しています。これで、ユーザーはアプリケーションの実行言語を選択できるようになります。AS3:親機能を作成する方法ComboBoxの選択した値を返す

このメニューは問題なく表示されますが、「言語の選択」コンボボックスが変更されてから表示されるまで表示する必要があります選択した選択肢のデータ値を返します。

私の問題は、コンボボックスを変更した後に値を返す方法がわからないことです。

function promptFRMenu():String{ 
FRMenu.enabled = FRMenu.visible = true; //when I detect the app is running for the    
             // first time, the dialog box is enabled 
             // and made visible 
var peferedLng:String = new String; 

    FRMenu.language_CBox.addEventListener(Event.CHANGE, announceSelectedItem); 
     function announceSelectedItem(e:Event):void { 
       FRMenu.enabled = FRMenu.visible=false; 
       peferedLng = e.target.selectedItem.data; 
       -> return peferedLng; 
       //It is the 'parent' function that should return this value but 
       // only after it is selected 
     } 


} 

本当にありがとうございます。 乾杯!

答えて

0

wのFBブリトーを使用しています、私のために動作します。そのようなネストされた関数から関数を返すこともできません。さらに、関数は呼び出されるとすぐに値を返します。イベントが発生するまで遅延させることはできません。そしてちょっとしたアドバイスでは、そのような名前付き関数をネストするのは一般的には良い習慣ではありません。

私はあなたが達成したいが、あなたはおそらくこれに近い何かしたい最終結果では明らかではないよ:

var peferedLng:String = new String; 
function promptFRMenu():String{ 
    FRMenu.enabled = FRMenu.visible = true; 
} 
FRMenu.language_CBox.addEventListener(Event.CHANGE, announceSelectedItem); 
function announceSelectedItem(e:Event):void { 
    FRMenu.enabled = FRMenu.visible=false; 
    peferedLng = e.target.selectedItem.data; 
    // do whatever you want to do with peferedLng here 
} 
+0

GRATビッグMOMO、感謝です。私のロジックはすべて間違っていた – Gerry

+0

NP - あなたはそれが働くことを願って – momo

+0

うん、それは今うまく動いている。再度、感謝します – Gerry

0

これは、私はあなたがイベントハンドラから機能を返すことはできませんヒーローSDK

/
<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> 
    <fx:Script> 
     <![CDATA[ 
      private function _handleChange($event:Event) :void 
      { 
       trace($event.target + " // CHANGED // " + $event.target.selectedItem.value); 
      } 
     ]]> 
    </fx:Script> 

    <mx:ComboBox id="comboBox" rowCount="5" labelField="label" prompt="Select One" change="_handleChange(event);"> 
     <mx:dataProvider> 
      <s:ArrayList> 
       <fx:Object label="One" value="1" /> 
       <fx:Object label="Two" value="2" /> 
       <fx:Object label="Three" value="3" /> 
       <fx:Object label="Four" value="4" /> 
       <fx:Object label="Five" value="5" /> 
      </s:ArrayList> 
     </mx:dataProvider> 
    </mx:ComboBox> 

</s:Application> 
関連する問題