includeディレクティブを使用してAS3に外部ファイルを含めるのと同じ方法で、MXMLファイルをMXMLファイルに含めたいとします。インクルード・ディレクティブを使用すると、外部ファイルのコードがコンパイル時に元のファイルに取り込まれ、同じスコープに配置されます。例えばMXMLファイルを別のMXMLファイルにインラインで含めるにはどうすればよいですか?
、
Application.mxml:
<Application>
<source="external.mxml"/>
</Application>
External.mxml:
<Styles/>
<Declarations>
<Object id="test"/>
</Declarations>
私は外部にこのコード/ MXML/XMLを維持する必要がありますオリジナルの範囲内のファイル。なぜ私はこれをしたいのですか?
もう1つの例です。 ...
File1.mxml
<Button click="clickHandler()"/>
<Script>
public function clickHandler():void {
}
</Script>
...
ここで私が欲しいものである:ここでは、すべての1つのMXMLファイルで私の現在のコード(簡体字)がある
...
File1.mxml
<Group>
<source="File2.mxml"/>
<Button click="clickHandler()"/>
<Group>
File2.mxml
<Script>
public function clickHandler():void {
trace(this); // File1.mxml
}
</Script>
...
私は別のファイルに出て自分のコードを分割したい...
~~ 更新 ~~~~~~~~~~~~~~~~~~~~~~~~~~
「コードビハインド」スキームの使用を求めていたわけではありませんビューからコードを外すことに部分的な信用を得ています。そこで、MXMLファイルMyGroup.mxmlまたはMyGroup.asを作成し、clickHandlerコードを含むGroupを拡張します。
このメソッドの問題点は、私が拡張しているビューのタイプをロックして、ビューをハードコーディングすることです。たとえば、別のファイルに分割したいMXMLクラスがGroupの場合は、Groupを拡張する必要があります。
私はこれが行われたプロジェクトに取り組んできましたが、それは良くありません。人々はスタイルや視覚的なアスペクトの設定を開始したり、コードビハインドクラスの特定のプロパティをグループ化/表示したりします。後で変更する必要がある場合やレイアウトを変更すると、これらの依存性がコンテナに残ります。それは混乱になります。さらに、Code Behindを使用すると再利用できなくなります(styles.asが再利用されるような方法で再利用できます)。だからこれは解決策ではありませんが、私はそれを言及すると思った。ここ
は、例えば背後にあるコードである、
MyGroupBehind.mxml:
<Group>
<Script>
public function clickHandler():void {
trace(this); // File1.mxml
}
</Script>
</Group>
MyGroupAhead。MXML:
<MyGroupBehind>
<Button click="clickHandler()"/>
</MyGroupBehind>
はい、それは文書内のコンポーネントのインスタンスを作成しますが、私はそれが同じスコープで同じ文書の一部であるかのように、それは外部のMXMLを治療する必要があります。たとえば、スクリプトタグ内にボタンとクリックハンドラを持つドキュメントがあるとします。そのクリックハンドラを別のmxmlファイルに配置したいと思います。 –