簡體   English   中英

沒有Flex的已簽名RSL(純AS3項目)

[英]signed RSL without Flex (pure AS3 project)

這里有一個簡短的解釋,說明如何使用純AS3來“模擬” Flex中使用的RSL系統: 不使用flex加載RSL?

但是簽名的RSL呢? 我們也可以使用該技術加載SWZ文件嗎? 玩家會緩存它們嗎? 如何在純AS3項目中“重用”播放器緩存的SWZ?

謝謝! 恩里克。

簽名的SWC(即SWZ)被加載到Flash Player緩存中,而不是瀏覽器緩存中。 因此,僅允許目前僅來自Adobe的超級受信任代碼。

要進行預加載嗎? 我所知道的唯一方法不是真正的方法,而是說您在Flex應用程序之前有一個信息頁面或登錄頁面,當用戶可能正在閱讀某些內容時,可以通過包含使用與主應用程序相同的RSL的輕量級SWF來加載RSL。 這是一個騙子,但看到它在帶寬最小時使用,並希望在應用程序首次加載時獲得實惠。

在播放器之外以其他任何方式預加載我可以看到的安全問題。

好的,這是解決方案(尚未測試,但我很確定它可以工作)
Adobe的AS3參考中的示例:
// URLRequest,摘要屬性:

var myURLReq:URLRequest = new URLRequest();
myURLReq.url = "http://yourdomain/users/jdoe/test01/_rsc/Automated/AssetCaching_rsc/test01/rsl.swz";
myURLReq.digest = "3B0AA28C7A990385E044D80F5637FB036317BB41E044D80F5637FB036317BB41";
var myURLLoader:URLLoader = new URLLoader();
myURLLoader.dataFormat = URLLoaderDataFormat.BINARY;
myURLLoader.addEventListener("complete", onC);

myURLLoad.load(myURLReq);

function onC(e) {
    var someLoader:Loader = new Loader();
    addChild(someLoader);
    someLoader.loadBytes((ByteArray)(myURLLoad.data)); 
}

因此,我們可以像其他任何SWF文件一樣加載已簽名的RSL(.SWZ),但是! 我們必須使用URLLoader,而不是Loader,並提供摘要屬性。 然后,我們使用Loader從URLLoader加載byteArray。 簽名的SWZ由Player內部檢查,如果檢測到Adobe已簽名,則它將被Player緩存,我們無需執行任何操作。 我認為Flash Player會在加載任何SWZ之前自動檢查該SWZ是否已由播放器緩存。

這就是我想的。

如果您想查看更多詳細信息,請在FlexCoders中查看我的回復:
http://tech.groups.yahoo.com/group/flexcoders/message/159010

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM