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

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

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

開(kāi)通VIP
實(shí)時(shí)加載Flex皮膚
實(shí)時(shí)加載 Flex 皮膚
一篇翻譯的文章,來(lái)自 The Kiwi Project ,這種方法很有用,但是唯一的問(wèn)題就是,在加載皮膚的過(guò)程中,用戶(hù)等待的問(wèn)題。如果皮膚文件比較大,沒(méi)有加載上來(lái)之前,程序可以說(shuō)是無(wú)反應的,這樣需要我們以某種方式提醒用戶(hù)當前程序的工作。

文中需要的資源文件列在下面:

皮膚模板
wrapper swf
例子
源碼

實(shí)時(shí)加載 Flex 皮膚
目前,有很多關(guān)于如何在你的 Flex 程序中繪制皮膚的資源。
概述:Flex 支持兩種繪制皮膚的方法:貼圖和編程。貼圖皮膚是在Flash、Photoshop、Firework等軟件中創(chuàng )建皮膚資源圖像,然后將他們導入(embed)到 Flex 程序中;編程皮膚是建立一個(gè)通過(guò)程序定義一個(gè)控件皮膚的 ActionScript 類(lèi)。你可能猜到,貼圖皮膚比較簡(jiǎn)單,編程皮膚可以實(shí)現更加豐富的效果。
這兩個(gè)方法都有一個(gè)共同的缺點(diǎn)是,皮膚資源(對于貼圖來(lái)說(shuō)是 SWF/PNG/GIF 等文件,對于編程來(lái)說(shuō)是那個(gè) AS 類(lèi))必須在程序編譯時(shí)就被包括。怎么改進(jìn)呢?在這篇文章中我將演示一個(gè)如何實(shí)時(shí)加載貼圖皮膚的巧妙方法。
為了使這個(gè)例子盡可能的簡(jiǎn)單,我僅建立一個(gè)只有一個(gè)按鈕的 Flex 程序,這個(gè)按鈕的皮膚是動(dòng)態(tài)添加的。本程序將實(shí)時(shí)取得一個(gè)皮膚 SWF 文件,加載皮膚,然后把它們應用到按鈕上。
第一步:為皮膚資源建立一個(gè)外殼 SWF
目的,有了這個(gè)外殼 SWF,我的 Flex 程序就可以實(shí)時(shí)加載皮膚中適當的資源
package
{
  import flash.display.Sprite;

  public class Wrapper extends Sprite
  {
    [Embed(source="flex_skins.swf",symbol="RadioButton_upIcon")]
    public var rbUpSkin: Class;
    [Embed(source="flex_skins.swf",symbol="RadioButton_downIcon")]
    public var rbDownSkin: Class;
    [Embed(source="flex_skins.swf",symbol="RadioButton_disabledIcon")]
    public var rbDisabledSkin: Class;
    [Embed(source="flex_skins.swf",symbol="RadioButton_overIcon")]
    public var rbOverSkin: Class;
  }
}
譯者注:上面代碼需要用 mxmlc 編譯,不用使用 Flex Builder 去建項目。

第二步:將這個(gè)外殼 SWF 放到服務(wù)器上
Flex 程序需要從某個(gè)地方加載皮膚呀。

第三步:在 Flex 程序中使用 Loader 加載外殼 SWF
我建了一個(gè)比較實(shí)用的類(lèi) ClassLoader 來(lái)加載 SWF 文件,并且將其轉化為類(lèi)。以下是一些關(guān)鍵行:
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
...

request = new URLRequest(swfLib);
var context:LoaderContext = new LoaderContext();
context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
loader.load(request, context);

第四步:從加載的 SWF 中生成類(lèi),然后實(shí)例化
var wrapperClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class;
var wrapper:Object = new wrapperClass();

第五步:利用 setStyle 應用皮膚
這個(gè)很簡(jiǎn)單了。
StyleManager.getStyleDeclaration("Button").setStyle("upSkin", wrapper.rbUpSkin);
StyleManager.getStyleDeclaration("Button").setStyle("downSkin", wrapper.rbDownSkin);
StyleManager.getStyleDeclaration("Button").setStyle("disabledSkin", wrapper.rbDisabledSkin);
StyleManager.getStyleDeclaration("Button").setStyle("overSkin", wrapper.rbOverSkin);

第六步:運行程序

那么為什么要這么做呢?動(dòng)態(tài)的皮膚提供給你一個(gè)難以置信而格外有力的功能:你可以讓你的用戶(hù)在你的程序上使用他們自己的皮膚。想象一下一個(gè)像 Winamp 的 Flex Mp3 播放器。開(kāi)發(fā)人員并不需要為程序建立一個(gè)皮膚庫,任何人都可以發(fā)布一個(gè) UI 通過(guò)設置皮膚 SWF (可能在一個(gè)配置窗口中)讓用戶(hù)選擇任一在社區中提供的皮膚。同樣重要的,開(kāi)發(fā)者也有能力來(lái)控制哪個(gè)皮膚可以被替換,哪個(gè)皮膚只能使用原來(lái)的皮膚(僅僅對相應的控件調用 setStyle 即可)。最后,將皮膚放到程序的外面,可以有效的保持程序的體積不會(huì )太大,肯定要比包含皮膚時(shí)要小
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
AS3應用程序模塊化開(kāi)發(fā)與ApplicationDomain -
FlashDevelop配置
了解Flex程序的生命周期
將多個(gè)fxg文件打包成swf,加載swf并將其中的fxg作為類(lèi)使用
【flash制作】flash加載外部swf并控制代碼
Flex加載swf的幾個(gè)要點(diǎn)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

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