Loader
クラスを使用して Actionscript 3 に画像をロードします。
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.IOErrorEvent;
function loadImage(url:String):void
{
var l:Loader = new Loader();
var r:URLRequest = new URLRequest(url);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
l.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
l.load(r);
function onLoadError(e:IOErrorEvent):void
{
trace("Couldn't load image.");
e.target.removeEventListener(Event.COMPLETE, onLoadComplete);
e.target.removeEventListener(IOErrorEvent.IO_ERROR, onLoadError);
}
function onLoadComplete(e:Event):void
{
trace("Load completed!");
e.target.removeEventListener(Event.COMPLETE, onLoadComplete);
e.target.removeEventListener(IOErrorEvent.IO_ERROR, onLoadError);
stage.addChild(e.target.content); // e.target.content holds the loaded bitmap
}
}
アップデート
コールバックと を使用して、Javascipt からの呼び出しをリッスンできますExternalInterface
。
if(ExternalInterface.available) // check that SWF is running in a browser
ExternalInterface.addCallback("loadImage", loadImage);
次に、SWF への参照を使用して Javascript から関数を呼び出します。たとえば、Flash が次のように埋め込まれている場合:
<embed src="flash.swf" id="myFlash" width="800" height="600" />
document.getElementById()
Javascript のメソッドを使用して参照を取得できます。
var swf = document.getElementById("myFlash"); // get a reference
swf.loadImage(myURL); // call your AS3 function
更新 1
この簡単な例を作成して、試してみて、私が言っていることを理解してください:例をダウンロード
Chrome で問題が発生している埋め込みタグを使用して埋め込んだため、これは Firefox でのみ機能することに注意してください。ただし、正しく埋め込むと、クロスブラウザーで機能します。