国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

外部文件哪兒去了

2012-04-29 00:44:03郭大春
中國信息技術(shù)教育 2012年12期
關(guān)鍵詞:斜杠播放器調(diào)用

郭大春

我的“診斷手記”

編者按:如果您是信息技術(shù)教師,或善于鉆研各種技術(shù)問題,那么在生活中,在教學(xué)中,一定親歷過無數(shù)的技術(shù)障礙,實(shí)施過不勝枚舉的解決方案,有冥思苦想時的抽絲剝繭,更有揮劍斬棘時的暢快淋漓。總有那樣一些“排雷”過程,讓您記憶猶新,總有那樣一些隱性的相關(guān)性讓您不斷刷新自己的認(rèn)知。

現(xiàn)在,我們?yōu)槟_設(shè)了這樣一個陳列館,期待您能夠?qū)⑦@些珍貴的“診斷手記”陳列出來,在展示自己“技藝”的同時也為大家提供更多可供借鑒的思路和經(jīng)驗(yàn)。

● 突遇新情況

我剛上完課,走進(jìn)辦公室,就見王老師早等在我的電腦旁了。見了我便迫不及待地說:“大春,幫看看,我這個視頻怎么打不開??!”

我一邊拖過鼠標(biāo),一邊說,視頻文件沒帶上吧?“不會的,SWF課件能播放視頻;但發(fā)布成EXE后播放視頻就成了一片空白了!”王老師一邊說著,一邊示意我分別打開SWF和EXE兩個版本的課件,果然是那樣!

我打開Flash源文件,只見他在調(diào)用外部視頻的幀上寫著以下兩行代碼。

_root.createEmptyMovieClip ( "swf_mc", 1 );

_root.swf_mc.loadMovie ( "Flv/Tea.flv" );

我思忖著,沒錯啊,第一行創(chuàng)建一個影片剪輯swf_mc,第二行往swf_mc中裝入外部影片“Flv/Tea.flv”。我再到文件夾里查看,跟FLA文件在一起,果然有一個Flv文件夾,里面也有一個能夠正常播放的Tea.flv。

這下可真讓人困惑了!到處都沒有錯,可結(jié)果卻是錯的——調(diào)不出視頻。

● 尋找禍根源

問題出在哪兒呢?是不是因?yàn)槭褂昧讼鄬β窂?,?dǎo)致EXE課件找不到Tea.flv文件。于是,我嘗試著將EXE課件和Flv文件夾一起復(fù)制到我的電腦C盤根目錄下,并將第二行語句改成:“_root.swf_mc.loadMovie ( "C:/Flv/Tea.flv" );”。 隨后,我雙擊運(yùn)行EXE課件,奇跡出現(xiàn)了,視頻調(diào)用成功。

● 一波又三折

我大喜過望,以為使用絕對路徑就可以成功調(diào)用。如何使用絕對路徑呢?怎不能要求每次使用課件的時候,都把它固定地放在一個相同的位置?我想到了Flash AS中的“_url”屬性——獲取文件路徑,然后截取路徑中從開頭到最后一個斜杠處的所有字符,再連上“/Flv/Tea.flv”,這樣,一個動態(tài)的絕對路徑便出來了。

于是我回到王老師的U盤中,打開源文件,將調(diào)用視頻的兩行代碼改成如下三行:

fileName = _url.substr(0, _url.lastIndexOf("/"))+"/Flv/Tea.flv";

_root.createEmptyMovieClip ("swf_mc", 1 );

_root.swf_mc.loadMovie(fileName);

保存后發(fā)布成SWF課件和EXE課件,雙擊運(yùn)行,竟被當(dāng)頭潑了一瓢冷水——問題依舊:SWF能播放外部視頻,EXE卻一片空白。

● 不識真面目

我又試著在場景中添加了一個動態(tài)文本框,命名為:fn_txt,然后在時間軸那三行代碼之后再補(bǔ)上一句:fileName _txt.text = fileName;——看看這個視頻文件的路徑到底變成了什么面目!

再次保存后發(fā)布成SWF和EXE兩種格式的課件,雙擊運(yùn)行,結(jié)果真讓人匪夷所思─SWF課件中的文本框顯示的是正常的“file:///M|/我的課件/Flv/Tea.flv”;而EXE課件中的文本框顯示的卻是“file:///M|/鎴戠殑璇句歡/Flv/Tea.flv” —— 路徑中的漢字都成了亂碼。

原來,一切根源都在于Flash不識漢字真面目!

● 迎刃而不解

于是,我百度了一下“Flash exe 調(diào)用外部文件 問題”,可結(jié)果大多是類似這樣的答案:“也遇到過這個問題,但最后知道EXE不支持loadmovie()。”哎,看來還是得自己尋求解決辦法。于是詳細(xì)查看Flash幫助,了解字符編碼方面的知識,找到了一個escape(expression)函數(shù)——將參數(shù)轉(zhuǎn)換為字符串,并以URL編碼格式進(jìn)行編碼,在這種格式中,將所有非字母數(shù)字的字符都轉(zhuǎn)義為%十六進(jìn)制序列。這正是我所需要的,于是我趕快將Flash課件中的ActionScript改成這樣:

fileName = _url.substr(0, _url.lastIndexOf("/"))+"/Flv/Tea.flv";

fileName = unescape(escape(fileName));

_root.createEmptyMovieClip("swf_mc",1 );

_root.swf_mc.loadMovie (fileName);

fileName _txt.text = fileName;

這樣在loadMovie之前(第二行)用escape對調(diào)用的外部文件名進(jìn)行URL編碼,再用一個unescape把URL 編碼的路徑再解碼回來。我很天真地以為這樣就能解決Flash的漢字識別問題。但再次運(yùn)行,終于讓人徹底失望了——EXE課件對外部文件路徑的解碼還是一堆亂碼。

后來,我通過進(jìn)一步探究,發(fā)覺escape編碼和unescape解碼都是多余的,在ActionScritp的第一行語句中,就根本沒有獲取正確的外部文件路徑——打包進(jìn)去的播放器沒有獲取正確的中文文件名。

● 原來卻如此

看來采用“file:///”形式的絕對路徑行不通——因?yàn)橛脩舨荒艽_保整個路徑中沒有漢字,而播放器對漢字文件名又不識別。這時我想到了斜杠(“/”),在網(wǎng)站程序編寫中,斜杠用來分隔目錄,而第一個斜杠則代表網(wǎng)站的根目錄,處于根目錄下的主頁文件對網(wǎng)站資源的調(diào)用有兩種方式——絕對路徑調(diào)用(從根目錄“/”開始)和相對路徑調(diào)用(從當(dāng)前目錄開始)。

能不能把Flash的EXE課件也想象成網(wǎng)站的首頁呢?那么,它要調(diào)用同一文件夾里的Flv目錄中的外部文件,除了前面嘗試的“file:///”形式的絕對路徑之外,還有兩種方式:“Flv/Tea.flv”和“/Flv/Tea.flv”,前一種人們慣用的方式行不通,那么“/Flv/Tea.flv”方式呢?于是,我將上面的ActionScript改成這樣:

fileName = "/Flv/Tea.flv";

_root.createEmptyMovieClip( "swf_mc",1 );

_root.swf_mc.loadMovie (fileName);

發(fā)布成SWF和EXE兩種格式的課件,居然都運(yùn)行通過,終于調(diào)出了久違的視頻。

● 問題得徹解

問題解決了,我沾沾自喜一陣子之后,總覺得發(fā)布成EXE的Flash課件不能識別漢字文件名,是一個嚴(yán)重缺陷,是Flash播放器的一個令人遺憾的Bug,那么,高版本的播放器應(yīng)該會有改進(jìn)吧?于是,我改用10.0的播放器打開SWF課件,然后,單擊“文件”、“創(chuàng)建播放器”,生成EXE課件,對三種路徑調(diào)用方式分別進(jìn)行測試,結(jié)果如下表所示。

從上表可見,如果你的課件用8.0的播放器打包成EXE文件,只有使用“/Flv/Tea.flv”這種形式調(diào)用外部素材;而“/Flv/Tea.flv”這種形式的外部文件調(diào)用在10.0的播放器中,又被全盤否定了——不管是SWF格式還是EXE格式,都應(yīng)采用“Flv/Tea.flv”這種調(diào)用方式。

幾天后,我把上面這個表格交給王老師,并說出的我觀點(diǎn)和建議。王老師親自實(shí)踐后,拍著腦袋高興地說,總算明白了,以后調(diào)用外部文件再也不會暈頭轉(zhuǎn)向了!

猜你喜歡
斜杠播放器調(diào)用
古代也有“斜杠青年”
Walkman誕生40周年 索尼適時發(fā)布NW-ZX500和NW-A100系列播放器
核電項目物項調(diào)用管理的應(yīng)用研究
“斜杠青年”的“橫向”人生
時代郵刊(2019年20期)2019-07-30 08:05:34
基于STM32的MP3播放器設(shè)計
電子制作(2019年9期)2019-05-30 09:41:44
當(dāng)青年加上“斜杠”——解析“斜杠青年”
“斜杠青年”的斜與不斜——“斜杠”實(shí)際是對青春寬度與廣度的追求
Moon ACE播放器/放大器一體機(jī)
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
社旗县| 英山县| 阿坝县| 太白县| 颍上县| 石嘴山市| 乐山市| 定襄县| 西平县| 玉门市| 商丘市| 建水县| 舟曲县| 巴林左旗| 莲花县| 丘北县| 永善县| 罗江县| 张家界市| 公安县| 民县| 霍林郭勒市| 龙江县| 固阳县| 泾阳县| 汉寿县| 乌拉特前旗| 林西县| 岳池县| 抚顺县| 咸宁市| 克拉玛依市| 巴中市| 临泽县| 闽清县| 呈贡县| 天峻县| 佳木斯市| 宜章县| 常熟市| 磴口县|