国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
探索Flash播放器“運行緩慢”的原因及解決方案

探索Flash播放器“運行緩慢”的原因及解決方案

Filed under: Resources — Aw @ 6:02 pm

轉(zhuǎn)載請注明出處:探索Flash播放器“運行緩慢”的原因及解決方案 - http://as3blog.com/resources/upload-causing-flashplayer-slowly/

最近在實現(xiàn)基于JavaScript和ActionScript的“批量文件上傳系統(tǒng)”。感謝SWFUpload這樣一個有趣的項目,從前到后ActionScript(AS2)、JavaScript和PHP都已經(jīng)基本搞定。然而,當我把本地的PHP腳本移到服務器上之后,在上傳大文件時,瀏覽器端的FlashPlayer總是彈出如下警告:

A script in this movie is causing Adobe Flash Player to run slowly. If it continues to run, your computer may become unresponsive. Do you want to abort the script?

大致意思是:“該Flash中有一段單幀腳本導致Flash播放器運行緩慢,如果繼續(xù),很可能會引發(fā)‘死機’現(xiàn)象”。其中,單幀腳本是指在Flash的一個關鍵幀中所處理的腳本。

Flash程序,也就是ActionScript,和C++、Java不同,ActionScript在2.0之前的入門門檻非常低,幾乎小學生學幾天都可以寫一個上來溜溜(這并不是一件壞事)。這樣一來,產(chǎn)生了不少效率低下的作品,甚至不少Flash動畫含有潛在的死循環(huán)體(例如點擊某個按鈕后執(zhí)行死循環(huán))。雖然我們應該給初學者鼓勵,但對于while(true)類似的死循環(huán),則無疑嚴重破壞了用戶體驗,甚至會給用戶造成不必要的損失。因此,對于編寫不規(guī)范的ActionScript代碼,采取這種措施是非常有必要的。

Adobe官方的解釋是“幾乎沒有一個用戶愿意為一個操作等待15秒以上的時間,他們(用戶)會認為應用程序出了問題”。因此,Adobe非常“人性化地”在這個“由眾多專家調(diào)查而得出的15秒”的時間段后給用戶一個提示。同時,也給出了一些方法,例如,可以將循環(huán)“分攤”到不同的關鍵幀上。對于載入服務器端數(shù)據(jù),如XML文件的案例,當被載入數(shù)據(jù)超過64k的時候,應將數(shù)據(jù)分開載入,并以不同的關鍵幀建立HTTP請求。這么做,比較類似我們在JavaScript中通過setInterval、setTimeout來解決。例如曾經(jīng)寫過一段JavaScript代碼來改變整個頁面鏈接的href屬性,提供增加alexa排名的可能性。

很遺憾,Adobe忽略了一件事:文件上傳

FileReference和FileReferenceList兩個類在Flash8的引入,無疑是Flash在Browser端應用極大的突破之一,曾經(jīng)困擾Web開發(fā)者的Ajax文件上傳批量上傳,尤其是對文件類型、大小的客戶端檢測,如今都能依靠FlashPlayer實現(xiàn)。而且,借助Flash8的External API,可以使ActionScript與JavaScript方便地通信,這樣就可以讓FlashPlayer在“幕后”完成一切的文件操作,而讓DOM(HTML)來展現(xiàn)內(nèi)容。

然而,恰恰是如此好的功能,卻幾乎每次都會受到上面提到的“腳本超時保護”的困擾。顯然,Adobe官方的解決方案在這里就行不通了。

利用Google搜索,發(fā)現(xiàn)無數(shù)的人也在詢問同樣的問題。后來在這篇介紹用Flex實現(xiàn)的批量上傳的文章后的評論里面,找到了一個叫做“Timothee Groleau”的哥們的“自問自答”,終于解開了迷團:FlashPlayer在觸發(fā)并執(zhí)行用戶定義的腳本(就是你編寫的ActionScript)時,會重置“腳本超時值”(上文提到的15秒)。這樣,我們可在某一個“馬甲MovieClip”上綁定一個onEnterFrame事件,讓它不斷地(逐幀)執(zhí)行。最簡單的做法就是:

_root.onEnterFrame=function(){return false}
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Flash視頻教程【動畫制作】【14個版本】【yx.yyyttt.com】
Flash Player 開源 2006/11/10
Adobe Flash CS4快捷鍵大全
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服