1

AS2 SWF を AS3 SWF にロードし、URL に変数を渡す

as3ファイルに外部のas2 swfファイルをロードしようとしています(うち、flaファイルにアクセスできません)。上記のリンクの説明によると、解決策は、元の as2 ファイルに as2 ラッパーを使用することです (そして、as3 ファイルと as2 ファイルの間にローカル接続を確立します)。私はそれをやろうとしましたが、ムービーが as3 ファイルに読み込まれているように見えますが、開始されず、再生されず、最初のフレームで動かなくなります。ムービーを再生 (およびロード) するにはどうすればよいですか? ご協力いただきありがとうございます。

私のas3ファイルは次のとおりです。

import com.gskinner.utils.SWFBridgeAS3;

var loader = new Loader()
loader.load(new URLRequest("as2_test.swf"));

addChild(loader);

var sb1:SWFBridgeAS3 = new SWFBridgeAS3("test",this);

私のas2ファイルは次のとおりです。

import com.gskinner.utils.SWFBridgeAS2;

var sb1 = new SWFBridgeAS2("test",this);
sb1.addEventListener("connect",this);

var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);

loader.loadClip("digestive.swf", mainLoader_mc);

編集:私はこの問題を抱え続けています。これは私がこれまでに持っているものです:

as2 ファイル - as2test.fla (別の as2 ファイル -digestive.sfw をダウンロードする必要があり、元の as2 ファイルとメインの as3 ファイルの間の接続を確立するためのラッパーとして機能します)

import com.gskinner.utils.SWFBridgeAS2;

var sb1 = new SWFBridgeAS2("test",this);
sb1.addEventListener("connect",this);

var my_pb:mx.controls.ProgressBar;
my_pb.mode = "manual";

this.createEmptyMovieClip("img_mc22", 999);

var my_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();

mclListener.onLoadStart = function(target_mc:MovieClip):Void {
    my_pb.label = "loading: " + target_mc._name;
};

mclListener.onLoadProgress = function(target_mc:MovieClip, numBytesLoaded:Number,    numBytesTotal:Number):Void {
    var pctLoaded:Number = Math.ceil(100 * (numBytesLoaded / numBytesTotal));
    my_pb.setProgress(numBytesLoaded, numBytesTotal);
    trace(pctLoaded);
};

my_mcl.addListener(mclListener);
my_mcl.loadClip("digestive.swf", img_mc22);

stop();

as3 ファイル (これは as2 ラッパーを再生します):

import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;

function startLoad()
{
    var mLoader:Loader = new Loader();
    var mRequest:URLRequest = new URLRequest("as2test.swf");
    mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
    mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
    mLoader.load(mRequest);
}

function onCompleteHandler(loadEvent:Event)
{
    addChild(loadEvent.currentTarget.content);
}

function onProgressHandler(mProgress:ProgressEvent)
{
    var percent:Number = mProgress.bytesLoaded/mProgress.bytesTotal;
    trace(percent);
}

startLoad();
stop();

as2 ラッパー ファイルでは、元のムービーが特定のフレームまで再生されます。as3 ファイルでは、as2 ラッパー ファイルは最初のフレームのみを再生します。私は何をしなければなりませんか?????

4

0 に答える 0