次のコードは:をスローする必要がありError #1009: Cannot access a property or method of a null object reference
ます:
var label:Label;
label.text = value;
ただし、MXMLデータバインディングによって設定されたセッターの内部にある場合はそうではありません。
public function set buggySetter(value:String):void {
var label:Label;
label.text = value; //will fail silently
}
この奇妙な動作を再現するには、まず、s:Labelを拡張して単純なカスタムコンポーネントを作成します。
package {
import spark.components.Label;
public class BuggyLabel extends Label {
public function set buggySetter(value:String):void {
var label:Label;
label.text = value; //will fail silently
}
}
}
Sectond、BuggyLabelをアプリケーションに追加し、buggySetterをバインドします。
<fx:Script>
<![CDATA[
[Bindable]
public var foo:String = 'NULL has no properties';
]]>
</fx:Script>
<local:BuggyLabel buggySetter="{foo}"/>
このアプリが黙って失敗するのはなぜですか?