Flex アプリケーション内で使用するクラスをインポートするにはどうすればよいですか?
-
09-06-2019 - |
質問
Flex アプリケーション内で使用したいクラスを定義する actionscript ファイルがあります。
actionscript ファイルでいくつかのカスタム コントロールを定義し、それらを application タグ経由でインポートしました。
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:scorecard="com.apterasoftware.scorecard.controls.*"
...
</mx:Application>
しかし、このコードは flex コンポーネントではなく、数学ルーチンを実行するためのライブラリです。このクラスをインポートするにはどうすればよいですか?
解決
クラスを script タグ内にインポートする必要があります。
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
import com.apterasoftware.scorecard.controls.*;
// Other imports go here
// Functions and other code go here
</mx:Script>
<!-- Components and other MXML stuff go here -->
<mx:VBox>
<!-- Just a sample -->
</mx:VBox>
</mx:Application>
そうすれば、スクリプト タグ内の他の場所でそのクラスを参照できるようになります。クラスの記述方法によっては、MXML 内でバインディングを使用できない場合がありますが、それを処理する独自のコードを定義することはできます。
名前空間宣言は、他の MXML コンポーネントをインポートするためにのみ使用されます。AS クラスは、Script ブロックまたは別の AS ファイル内で import ステートメントを使用してインポートされます。
他のヒント
@ハームズ:少し明確にするために、MXML を使用して AS クラスをインスタンス化する場合、名前空間宣言を使用して AS クラスを「インポート」することもできます。
たとえば、完全に AS で作成したカスタム ビジュアル コンポーネントがあるとします。 com.apterasoftware.scorecard.controls.MathVisualizer
. 。MXML 内で使用するには:
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:aptera="com.apterasoftware.scorecard.controls.*">
<aptera:MathVisualizer width="400" height="300" />
</mx:Application>
所属していません StackOverflow