面试回来。主程提了一个问题,问Flash里面有几种加载资源的方式?
应该有五种方式。
第一种,普通加载。由URLLoader,Loader直接加载。
第二种,是Embed元标签嵌入。
第三种,是用applicationdomain实现。
第四种,是SWC方式实现。
第五种,是用二进制方法。
=====================================华丽丽分割线===========================================
第一种案例,略。
第二种案例,如下:
[Embed(source="sl.jpg")]
private var myImg:Class;
var mc:Bitmap=new myImg() as Bitmap;
addChild(mc);
第三种案例,如下:
package
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;
import flash.display.MovieClip;
public class Main extends Sprite
{
private var loader:Loader;
public function Main()
{
// constructor code
loader=new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
loader.load(new URLRequest("domain.swf"));
}
private function onComplete(e:Event):void
{
var myClass:Class=loader.contentLoaderInfo.applicationDomain.getDefinition("MC") as Class;
var myMC:MovieClip=new myClass();
addChild(myMC);
//myMC.gotoAndStop(2);
}
}
}
第四种案例,如下:
把资源把包成swc文件。然后添加到Flash IDE的库路径中即可。
比如,引用上例中的影片剪辑MC ,可以直接
var mc:MovieClip=new MC();
addChild(mc);
mc.gotoAndStop(2);
这样写也很方便实用。
第五种案例,如下,
是用loader类中的loadBytes()方法。
读过这篇文章。或受益非浅。