質問

おそらく何らかのメタデータを通じて、オブジェクトのプロパティを強制的に設定することは可能ですか?次のような1つ以上のプロパティが設定されない限り、何もしないだけの非ビジュアルコンポーネントが多数あります。

<ToolTip target="{this}">
    <mx:Image source="foo.png" />
</ToolTip>

この場合、ターゲットプロパティは必要に応じてマークすると便利です。設定しないことは意味をなさないからです。文書化するのは簡単なので、これは大きな問題ではありませんが、コンパイラーに開発者にエラーを通知させることで、少なくともいくつかのデバッグの往復をなくすといいでしょう。

このタグが冗長になることは望ましくありません。ToolTipコンポーネントをUIComponentにし、親プロパティを使用するだけで解決できます。しかし、一つには、これは不必要なオーバーヘッドを追加し、他の場合には単に適切ではありません:

<Button id="btn" label="Foo" />
<ToolTip target="{btn}">
    <mx:Image source="foo.png" />
</ToolTip>

では、必須のmxml属性は可能ですか?

役に立ちましたか?

解決

解決策はありますが、メタデータを使用するほど簡単ではありません。非ビジュアルコンポーネントにIMXMLObjectインターフェイスを実装するだけです。インターフェイスには、「初期化済み」というメソッドが1つだけあります。インターフェイスを実装すると、MXMLを介して初期化されたオブジェクトを検査できます。

したがって...

public function initialized(document:Object, id:String):void
{
  if ( target == null ) throw new Error( "You must supply an argument to target!" );
} 

コンパイル時のチェックがあればいいのですが、これはうまく機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top