3

コンテキスト: ActionScript 3 を使用して Flash CS6 でコンポーネントを作成しています。 UIComponentを拡張するカスタム クラスを使用しています。コンポーネントをシーンにドラッグすると、Flash のコンポーネント パラメータに値を持ついくつかのプロパティがあります。私はそれらを作成しました

[Inspectable(name="ParamName", type="String", defaultValue="some_param_value")]

リストであるプロパティが1つあります。

[Inspectable(name="My List", type="List", defaultValue="One", enumeration="One,Two,Three")]

質問 Web サービスを介して配列に収集した値をリストに入力できますか。私は列挙型プロパティについて話している。

私は本当にそれを機能させる必要があるので、技術的に不可能な場合、代わりにコンポーネントを構築するにはどうすればよいですか?

すべてのアイデア、提案、またはヒントを事前に感謝します!

4

1 に答える 1

1

Inspectableメタデータ タグは、コンポーネントがアプリケーションでどのように使用されているかを示す情報をコンパイラに提供することを目的としています。

これらのコンパイル時ディレクティブは、実行時に解釈されることはありません。

クラス定義によって記述されるこれらのプロパティは動的ではありません。

<type name="X" base="Class" isDynamic="true" isFinal="true" isStatic="true">
  <extendsClass type="Class"/>
  <extendsClass type="Object"/>
  <accessor name="prototype" access="readonly" type="*" declaredBy="Class"/>
  <factory type="X">
    <extendsClass type="flash.events::EventDispatcher"/>
    <extendsClass type="Object"/>
    <implementsInterface type="flash.events::IEventDispatcher"/>
    <variable name="listOptions" type="Array">
      <metadata name="Inspectable">
        <arg key="name" value="My List"/>
        <arg key="type" value="List"/>
        <arg key="defaultValue" value="One"/>
        <arg key="enumeration" value="One,Two,Three"/>
      </metadata>
    </variable>

さらに、Flash Pro のアートボードでオーサー時にアプリケーション ドメインとネットワークの呼び出しを行うと、問題が発生する可能性があります。ただし、オーサリング中にマップをロードするための呼び出しを行うことができる Google マップ コンポーネントを開発しました。

学術的ですが、これはこのタグの不適切な使用のようです。この実装は通常、コンポーネントの静的オプション用です。

これは、クラス定義を自動生成する自動プロセスによってのみ実現できます。

同様に、列挙可能な値が入力された ActionScript クラス ファイルを書き込むサービスを呼び出すことができます。次に、更新のために新しいコンパイル済みコンポーネントをプッシュする自動ビルドを行います。

コンパイルされたアセンブリ以外に、これらの定義をリアルタイムで動的に更新する方法はありません。

于 2012-11-09T19:40:39.363 に答える