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
我做了这个简单的例子让你尝试并理解我告诉你的内容:下载示例
请注意,这仅适用于 Firefox,因为我使用 embed 标签嵌入了它,这在 Chrome 中存在问题,但如果您正确嵌入它,它可以跨浏览器工作。