所以在遊戲類在這裏的SWFLoader(圖片延伸的SWFLoader)。如果你傳入了ByteArray或者一個url而不是它添加了合適的監聽器。你所做的是給它一個位圖,它是一個顯示對象。下面是加載位圖到圖像中的重要代碼:
else if (classOrString is DisplayObject)
{
contentHolder = child = DisplayObject(classOrString);
addChild(child);
contentLoaded();
}
的ByteArray:
else if (byteArray)
{
loader = new FlexLoader();
contentHolder = child = loader;
addChild(child);
loader.contentLoaderInfo.addEventListener(
Event.COMPLETE, contentLoaderInfo_completeEventHandler);
loader.contentLoaderInfo.addEventListener(
Event.INIT, contentLoaderInfo_initEventHandler);
loader.contentLoaderInfo.addEventListener(
IOErrorEvent.IO_ERROR, contentLoaderInfo_ioErrorEventHandler);
loader.contentLoaderInfo.addEventListener(
Event.UNLOAD, contentLoaderInfo_unloadEventHandler);
// if loaderContext null, it will use default, which is AppDomain
// of child of Loader's context
loader.loadBytes(byteArray, loaderContext);
}
一個網址:
else if (url)
{
// Create an instance of the Flash Player Loader class to do all the work
loader = new FlexLoader();
contentHolder = child = loader;
// addChild needs to be called before load()
addChild(loader);
// Forward the events from the Flash Loader to anyone
// who has registered as an event listener on this Loader.
loader.contentLoaderInfo.addEventListener(
Event.COMPLETE, contentLoaderInfo_completeEventHandler);
loader.contentLoaderInfo.addEventListener(
HTTPStatusEvent.HTTP_STATUS, contentLoaderInfo_httpStatusEventHandler);
loader.contentLoaderInfo.addEventListener(
Event.INIT, contentLoaderInfo_initEventHandler);
loader.contentLoaderInfo.addEventListener(
IOErrorEvent.IO_ERROR, contentLoaderInfo_ioErrorEventHandler);
loader.contentLoaderInfo.addEventListener(
Event.OPEN, contentLoaderInfo_openEventHandler);
loader.contentLoaderInfo.addEventListener(
ProgressEvent.PROGRESS, contentLoaderInfo_progressEventHandler);
loader.contentLoaderInfo.addEventListener(
SecurityErrorEvent.SECURITY_ERROR, contentLoaderInfo_securityErrorEventHandler);
loader.contentLoaderInfo.addEventListener(
Event.UNLOAD, contentLoaderInfo_unloadEventHandler);
...[this goes on for awhile]
所以,你在這裏得到的要點。不要將它轉換爲位圖,你會得到完整的事件。您也可以將ADDED_TO_STAGE添加到您的位圖。
感謝您的回答喬爾。我使用FileReference.load從FileReference.data ByteArray加載圖像,所以我別無選擇,只能使用ByteArray。但是,我聽取了位圖上的ADDED_TO_STAGE事件,它的工作方式就像一個魅力!謝謝! – 2010-01-12 06:21:54
你可以在image.load中使用bitmapdata,它會觸發整個事件。將它轉換爲位圖就是它只是把它作爲一個孩子添加的地方。 – 2010-01-12 06:29:59
你是男人喬爾! – infomaniac 2011-02-17 10:26:06