2009-03-23 4 views
13

私はFlashDevelop3 R2とFlex 3.3 SDKで開発し、私のような埋め込みメタデータタグを使用しなければならない多くの機会があります。AS3 [イベント(name = ""、type = "")]、意味は何ですか?

[Embed(source="path/to/file")] 
    private var Asset:Class; 

は、私は上記のすべてが順調と良い理解し、私はそれが存在して感謝しています私はフラッシュIDEをあまりにも頻繁に開くのは好きではないからです。私は最近、他の作家のクラスを介しつもりとき

、私は理解していない興味深いメタデータタグを発見した:

[Event(name="", type="")] 

私は、さらに私は本当に私はこれを必要と状況を見るためには至っていない、とそれが何であるかを理解していないだけです。

ありがとうございました。

ブライアンホッジ
blog.hodgedev.comhodgedev.com

答えて

12

私たちは、カスタムMXMLコンポーネントにカスタムイベントを結合するためにそれを使用。このタグを使用すると、MXMLからそのタグを参照できます。あなたがそのMXMLタグにイベントを参照しようとした場合

[Event(name="enableChanged", type="flash.events.Event")]

class ModalText extends TextArea { ... }

<MyComp:ModalText enableChanged="handleEnableChangeEvent(event);"/>

コンパイラ、しかし、文句を言うでしょう:documentationを参照してください。イベントメタタグで宣言されていませんでした。

+0

興味深いことに、MXMLを含まないAS3プロジェクトでこれを見つけましたが、これはMXMLを使用するプロジェクトでこのクラスをインポートして使用できるためです。 –

+0

はい、カスタムコンポーネントは通常、パフォーマンスの問題を避けるために純粋なAS3でコーディングされています。 – dirkgently

20

これらの[Event(name, type)]宣言は、クラスインスタンスがどのイベントをディスパッチする可能性があるかを記述します。彼らは実際にコード補完に便利です

- たとえば、あなたが入力したとき:mySprite.addEventListener(、あなたのコードエディタ(Flex BuilderのかFlashDevelopのは)このオブジェクトが派遣できるイベントの意味のリストが表示されます。

これらの宣言をコードに追加し、より豊富なコード補完の恩恵を受けることができます。

これは、カスタムイベントクラス(FlashDevelopの新しいイベントクラステンプレートを参照)で機能することにも注意してください。

+0

まさに私が探していた答え! – Veehmot

関連する問題