1

私は Flex Builder をますます使用しており、すべて Flex Builder でかなり資産の多いアプリケーションを作成しようとしています。Flash アセットを SWC としてパブリッシュまたはエクスポートして Flex Builder で使用できるようにする方法は知っていますが、Flash にフレーム状態のボタン MovieClip があり、それが SWC としてパブリッシュされた SWF にエクスポートまたは含まれている場合はどうでしょうか。 Flexbuilder で作成されたクラス ファイルをこの SWC アセットに関連付けたいですか?

不必要なラウンドトリップを避けたい... Flash で作成された MovieClip クラスを編集する必要があるたびに、Flex Builder で使用できるように、クラスを編集して SWC に再公開または再エクスポートする必要があります。つまり、Flash でグラフィック アセットをオーサリングしながら、すべてのコーディングを Flexbuilder で行いたいと考えています。

4

3 に答える 3

3

これを見るには2つの方法があります。最初の方法 (かなり頻繁に使用します) は、Flex プロジェクトの lib フォルダーに FLA を含めることです。次に、FLA でパスを ../src/ (パブリッシュ設定 -> Flash タブ -> ActionScript 3 ボタン) に設定して、Flash が Flex アプリケーションの残りの部分と同じパッケージに到達できるようにします。これは、SWC が Flex に既にあるクラスの単なるコンパイル済みバージョンであることを意味します (したがって、SWC を Flex プロジェクトに技術的に追加する必要さえありません)。

このようなことを行う他の方法は、Flash 内にアセットを作成し、さまざまなアセットにダミー クラスを割り当てるだけです。Flash はこれらのアセットのクラスを自動的に作成します。次に、その SWC を Flex プロジェクトにインポートします。アセット自体は明らかにただのムービークリップですが、アセットをインスタンス化して制御する独自のクラスを作成できます。

于 2009-06-28T14:33:47.063 に答える
2

私はこれに対する良い解決策を自分で考え出そうとしています。私が見つけた最善の解決策は、あるクラスを使用して別のクラスを装飾するデコレータ パターンを使用することです。フラッシュからボタンをロードし、ロールオーバー動作をボタンにカプセル化するとします。次のようになります。

public class AnimatedButton extends Sprite
{
    private var mc:MovieClip;

    public function AnimatedButton( mc:MovieClip )
    {
        this.mc = mc;

        addChild(mc);

        mc.addEventListener(MouseEvent.CLICK, onClick);
        mc.addEventListener(MouseEvent.ROLL_OVER, onRollOver);
        mc.addEventListener(MouseEvent.ROLL_OUT, onRollOut);
    }

    protected function onClick ( event:MouseEvent ):void
    {
        mc.gotoAndPlay("clicked");
        dispatchEvent( event) );
    }

    protected function onRollOver ( event:MouseEvent ):void
    {
        mc.gotoAndPlay("over");
        dispatchEvent( event) );
    }

    protected function onRollOut ( event:MouseEvent ):void
    {
        mc.gotoAndPlay("out");
        dispatchEvent( event );
    }
}

次に、ロールオーバー状態をボタンに追加したいときは、次のように装飾します。

private var btn:AnimatedButton = new AnimatedButton( new FlashButton() );

これは基本的に、新しく装飾された機能を持つボタンを作成します。クールなのは、「オーバー」「アウト」および「クリック」フレームを持つ任意のボタンでこれを使用できるようになったことです。

于 2009-07-22T02:46:32.767 に答える
0

ありがとうブランデン。私が抱えている問題の 1 つは、マルチフレームの Flash アセットを使用する場合です。たとえば、_up、_over、_down ラベルが付いた MovieClip ボタンや、最初のフレームでの stop() アクションなどです。埋め込みを使用すると、フレーム ベースのアクション スクリプトが削除されます。このシナリオに「最適な」ソリューションはありますか?

于 2009-06-28T21:05:08.193 に答える