0

MXML でインライン コードを追加できます。ただし、MXML (インライン コード) で NULL オブジェクトからプロパティを取得しようとすると、flex はエラーをスローしません。ただし、アクション スクリプト タグで同じことを行うと、スクリプト エラーがスローされることがわかります。

この動作が MXML でどのようにキャプチャされるか。何か案が。

例:

Class ValueTo  //Model class
{

  public var name:string;

}

<fx:Script>
        <![CDATA[
            public var v:ValueTo;
        ]]>
    </fx:Script>

    <mx:Label **text="{v.lable}"** />  //No error thrown, when v=null, i.e null.label
4

1 に答える 1

0

これが発生する理由は、中かっこ式が原因です: text="{v.label}. (「中括弧」またはバインディング式以外にこれらを何と呼ぶか​​わかりません-誰かが適切な用語で私を編集/修正してください)。

Flex のデータ バインディング機能は、設計上、これらのエラーを「飲み込み」ます。ご想像のとおりv.label、アプリケーションの起動時などは、次のような値が null になることがあります。便宜上、Flex がこれらのエラーを処理してくれます。しかし、独自の Actionscript を作成するときは、そのような余裕はありません。

ただし、魔法のようなものではありません。データ バインディング/中かっこ式を管理する Flex コードは、null をチェックするかtry/catch、null オブジェクトに起因する可能性のあるエラーを処理するステートメントにラップされます。

于 2012-07-17T14:47:19.423 に答える