2012-03-07 14 views
2

私はactionscript3/flashbuilderの新機能です。あるビューから別のビューに値を渡すような単純な操作をしようとしています。1つのビューから別のビューに値を渡す

私はすべての構文エラーを働いたが、私はまだ、私はテストのために値をハードコーディングされているにもかかわらず...

(TypeError: Error #1009: Cannot access a property or method of a null object reference)

NULLエラーを取得しています。

私は2つのビューを持ち、ボタンを押すと別のビューに値を渡して、渡された値をラベルに表示します。

VIEW1:

<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" title="view1"> 
    <fx:Script> 
     <![CDATA[ 
     var value1:int = 1; 
     var value2:int = 2; 
     ]]> 
    </fx:Script> 
    <s:Button id="btn1" x="5" y="10" width="25" label="Button 1" click="navigator.pushView(view2, {val:value1})"/> 
    <s:Button id="btn2" x="15" y="100" width="25" label="Button 2" click="navigator.pushView(view2, {val:value2})"/> 
</s:View> 

VIEW2:

<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" title="view2"> 
<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 

</fx:Declarations> 
<fx:Script> 
    <![CDATA[ 
     var passedValue:int = data.val; 
    ]]> 
</fx:Script> 
    <s:Label x="75" y="100" width="200" text="{passedValue}" /> 

任意の助けをいただければ幸いです。ここ

は私の2つの図であります!

ありがとうございます!

答えて

5

ビューが作成される前にデータオブジェクトにアクセスしようとしていますか?

ビューへのcreationCompleteハンドラを追加します。

<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library://ns.adobe.com/flex/spark" title="view2" creatonComplete="init(event)"> 

そして、あなたのinitメソッド内で使用すると、また

<fx:Script> 
<![CDATA[ 
    [Bindable] private var passedValue:int; 
    protected function init(e:FlexEvent):void{ 
     passedValue = data.val; 
    } 
]]> 
</fx:Script> 

データオブジェクトにアクセスすることができます、私はあなたにに[Bindable]を追加気づきますpassedValue var。 これは、その値をラベルに結びつけるためです。そのためには、あなたのvarに[Bindable]を使用する必要があります

+0

素晴らしい提案...私は私のプロジェクトに上記を追加しました。ただし、e:FlexEventはinit関数で認識されません。タイプが見つかりませんでした....ありがとう! – SkyeBoniwell

+0

nevermind ... 'import mx.events.FlexEvent;'を追加する必要がありました。 – SkyeBoniwell