0

実行時にmap.swfsをロードするゲームを作成しています。マップにはグラフィックとコードが含まれ、どちらもマップごとに異なります。すべてのマップにインターフェイスを実装させることにしました。これにより、ゲームですべて同じように使用できるようになります。このページのように、インターフェイスを含めるために.swcを使用しています。

クラスを.swcで動作させることはできますが、インターフェイスを動作させることはできません。

AS3で編集にFlashcs5とflashdevelopを使用しています。これが私がそれをやってきた方法です:

1-MapというシンボルとMap.asを使用してmap.flaを作成します。

public class Map extends MovieClip {
    public function test():void {
        trace("woohoo");
    }
}

2- Flashで、マップシンボルを右クリックし、[SWCのエクスポート...]と[SWFのエクスポート...]を選択します。

3-ローダーと呼ばれる新しい.flaおよびflashdevelopプロジェクトを新しいフォルダーに作成し、2で作成した.swfおよび.swcにコピーします。

4- flashdevelopで、swcを右クリックし、「ライブラリに追加」を選択します

5-フラッシュで、actionscript設定->ライブラリパス、swcを追加し、リンクタイプを設定します:外部

map.swfにロードした後、Loader.asでMapクラスにアクセスできるようになりました。

public class Loaderoo extends MovieClip {

    public function Loaderoo() {
        var loader:Loader = new Loader()
        loader.load(new URLRequest("map.swf"), new LoaderContext(false, ApplicationDomain.currentDomain));
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
        // var map:Map = new Map(); // this would throw a VerifyError 1014
    }

    private function loaded(e:Event):void {
        var map:Map = new Map();
        addChild(map);
        map.test(); // now it has loaded the class - traces "woohoo"
    }
}

ここまでは順調ですね。でもやってみたら

public class Map extends MovieClip implements IMap {
    ...

private function loaded(e:Event) {
        var map:IMap = new Map();
        ...

動作しません!「VerifyError:エラー#1014:クラスIMapが見つかりませんでした」というメッセージが表示されます。なんでなんで?誰かが助けてくれるなら、私は感謝するでしょう。

4

1 に答える 1

0

インターフェイス IMap を swc に保存する必要があります。マップ シンボルだけでなく、fla 全体を swc としてエクスポートしてみてください。

Flash の場合: [Flash] > [Publish Settings] > [Flash] > [Export SWC] ボックスをオンにします。

次に、swf を公開し、結果の swc を FlashDevelop で使用します。

また、ライブラリを完全に FlashDevelop に含めると役立つかもしれません。

これについては、問題番号 2 を参照してください: http://flashontherocks.com/2010/12/13/flashdevelop-resolved-issues/

幸運を!

于 2011-02-04T08:11:59.313 に答える