欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
將多個(gè)fxg文件打包成swf,加載swf并將其中的fxg作為類(lèi)使用

將多個(gè)fxg文件打包成swf,加載swf并將其中的fxg作為類(lèi)使用

在利用fxg制作點(diǎn)狀符號庫的過(guò)程中,需要動(dòng)態(tài)加載fxg文件,并將其作為類(lèi)使用。然而flex自身并不支持flex文件的直接讀取。雖然在flex項目中,可以將fxg文件直接放在flashbuilder4的源文件中,一起編譯后可直接作為類(lèi)使用,但是這樣fxg文件需要事先編譯,和程序不能脫離,達不到動(dòng)態(tài)加載的目的。

 

為了解決上述難題,一個(gè)可行的解決方案是將fxg文件打包成swf,然后加載swf并從中析取fxg作為類(lèi)使用。對于這種方法,我將分兩部分加以說(shuō)明。

 

1.將多個(gè)fxg文件打包成swf

據我所知,有兩種方法可以做到這一點(diǎn)。

 

第一種方法是在FlashBuilder4中創(chuàng )建一個(gè)新的flex庫項目,將fxg文件置于src文件夾中,編譯后生成swc。將swc解壓后有兩個(gè)文件:catalog.xml,用于各類(lèi)/資源的配置文件;library.swf,存放各種類(lèi)/資源。

 

這種方法十分簡(jiǎn)單,但最大的缺點(diǎn)在于依賴(lài)FlashBuilder。試想最終用戶(hù)想要根據自己制作的fxg生成點(diǎn)狀符號庫,還必須依賴(lài)flashbuilder是一件多么痛苦的事。換句話(huà)說(shuō),作為開(kāi)發(fā)者,這點(diǎn)還可接受;但是作為需要自己更改符號庫的最終用戶(hù),這點(diǎn)則是不可接受的。

 

于是我嘗試了第二種方法:精簡(jiǎn)Flex的sdk。

 

利用Flex的sdk中的命令可以將fxg打包成swc。具體如下:

compc -include-sources E:\fxg2swc\bin\fxg\ -output e:\fxg.swc。

 

sdk中有許多與此不相干的東西,都可以刪除掉,最后可精簡(jiǎn)至13M左右。這樣就可以作為一個(gè)小工具提供給最終用戶(hù)。

 

使用這種方法會(huì )遇到的一個(gè)問(wèn)題是生成的swc會(huì )很大,造成這點(diǎn)的原因在于其將libs下的一些文件也打包在內,可通過(guò)更改sdk中的frameworks/flex-config.xml文件加以解決:將<library-path>中<path-element>libs/player/{targetPlayerMajorVersion}.{targetPlayerMinorVersion}</path-element>和<path-element>libs</path-element>放到<external-library-path>中。

 

2.從swf中析取fxg并作為類(lèi)使用

其思路是利用loader類(lèi)加載library.swf,然后利用從catalog.xml提取的類(lèi)名從loader中提取類(lèi),然后利用類(lèi)生成類(lèi)對象。

 

(1)加載library.swf

 

Actionscript3.0代碼  
  1. var loader:Loader = new Loader();  
  2. loader.contentLoaderInfo.addEventListener(Event.COMPLETE ,onFxgComplete);  
  3. loader.load(new URLRequest("fxg/library.swf"));  
 

 

(2)根據類(lèi)名提取類(lèi)

private function getClassByName(className:String,loaderInfo:LoaderInfo):Class

Actionscript3.0代碼  
  1. {  
  2.     if (loaderInfo.applicationDomain.hasDefinition(className))  
  3.         return loaderInfo.applicationDomain.getDefinition(className) as Class;  
  4.     else  
  5.         return null;  
  6. }     

  (3)根據類(lèi)生成類(lèi)對象

private function onFxgComplete(event:Event):void

Actionscript3.0代碼  
  1. {  
  2.     var arr:Array = _xmlParse.getClassNameArray();  
  3.     for(var i:int = 0; i < arr.length;i++)  
  4.     {  
  5.         var cls:Class = this.getClassByName(arr[i],event.target as LoaderInfo);  
  6.         var fxg:DisplayObject = new cls();  
  7.         registerClassAlias(arr[i],cls);                   
  8.         _symArr.push(fxg);  
  9.     }  
  10. }  
 

 

 

 

 

分享到:
評論
1 樓 huyan0501 2011-06-22   引用
樓主!你好!關(guān)于你這篇文章中提到的動(dòng)態(tài)加載外部庫的方式,我測試過(guò)好多次,都沒(méi)有成功。我一直都報錯。

ReferenceError: Error #1065: 變量 ResourceRef 未定義。
at global/flash.utils::getDefinitionByName()

請問(wèn)你能不能給我個(gè)調試成功的例子啊。huyan05170138@163.com
當然如果能在回復中給予指導也行,謝謝了
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
FlashDevelop配置
AS3加載機制
AS3應用程序模塊化開(kāi)發(fā)與ApplicationDomain -
【flash制作】flash加載外部swf并控制代碼
flash制作一個(gè)完整的loading
Flex2 發(fā)現之旅:構建多語(yǔ)言本地化Flex應用
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久