Flash Player 7比以前的Flash播放器支持更多的動(dòng)作腳本命令,可以使用這些命令來(lái)編寫更穩(wěn)健的腳本。不過(guò),如果在現(xiàn)有的腳本中使用了這些命令,并針對(duì)Flash 7播放器發(fā)布該腳本,它也許不能正確工作。例如,如果你有一個(gè)腳本,其中有一個(gè)函數(shù)名使用了Error,該腳本也許可以正確編譯,但并不能按照Flash 7播放器的方式運(yùn)行,因?yàn)樵诂F(xiàn)在的動(dòng)作腳本語(yǔ)言中Error是一個(gè)內(nèi)建類(因此,Error是一個(gè)保留字)?梢酝ㄟ^(guò)修改腳本,把Error函數(shù)名改為其它名字來(lái)解決,如ErrorCondition。
Flash 7播放器也有了很多變化,這些變化影響到一個(gè)SWF文件怎樣訪問(wèn)另一個(gè)SWF文件,怎樣載入外部數(shù)據(jù),怎樣訪問(wèn)本地設(shè)置和數(shù)據(jù)(如隱私設(shè)置和本地永久共享對(duì)象)。最后,一些現(xiàn)有的特性也已經(jīng)改變。
如果你現(xiàn)有的腳本是針對(duì)Flash 6或更早版本的播放器編寫的,但又想針對(duì)Flash 7播放器發(fā)布,你可能需要修改你的腳本,以便它們符合Flash 7播放器的執(zhí)行要求并能按設(shè)計(jì)思路工作。下面我們就介紹這些相關(guān)知識(shí)。
一、遵從ECMA-262 Edition 4方案
Flash 7播放器作了一些修改,使之更加符合ECMA-262 Edition 4方案。在動(dòng)作腳本語(yǔ)言2.0中,除了可以使用基于類的編程技術(shù)外,也增加了其它特性,某些行為也已修改。當(dāng)你針對(duì)Flash 7播放器發(fā)布且使用動(dòng)作腳本語(yǔ)言2.0時(shí),你可以不把一種對(duì)象類型指派給另一個(gè)。這些功能不要求你更新現(xiàn)有的腳本,但是,如果你針對(duì)Flash 7播放器發(fā)布發(fā)布你的腳本,你可以使用這些功能,然后繼續(xù)修訂和改進(jìn)。
與上面提到的變化不同,下表列出的變化(其中也有一些不完全遵從ECMA方案)可能導(dǎo)致現(xiàn)有腳本的執(zhí)行結(jié)果與以前不同。如果你在針對(duì)Flash 7播放器發(fā)布的現(xiàn)有腳本中使用了這些特性,請(qǐng)查看一下這些變化,確保你的代碼能夠按照設(shè)計(jì)計(jì)劃運(yùn)行,或確定是否需要重寫代碼。特別是,計(jì)算undefined(未定義)項(xiàng)的結(jié)果在某些情況下是不同的,你應(yīng)該在針對(duì)Flash 7播放器發(fā)布的腳本中初始化所有的變量。
針對(duì)Flash 7播放器發(fā)布的SWF文件 |
針對(duì)早期Flash播放器發(fā)布的SWF文件 |
支持區(qū)分大小寫(只是大小寫不同的變量名被解釋為不同的變量)。這種變化也影響用#include指令載入的文件和使用LoadVars.load()命令載入的外部變量。 |
不區(qū)分大小寫(只是大小寫不同的變量名被解釋為相同的變量)。 |
|
|
在數(shù)值上下文中計(jì)算undefined項(xiàng)的返回結(jié)果是NaN。 |
在數(shù)值上下文中計(jì)算undefined項(xiàng)的返回結(jié)果是0。 |
myCount +=1; trace(myCount); // NaN |
myCount +=1; trace(myCount); // 1 |
|
|
當(dāng)undefined項(xiàng)被轉(zhuǎn)換為字符串時(shí),其結(jié)果是undefined。 |
當(dāng)undefined項(xiàng)被轉(zhuǎn)換為字符串時(shí),其結(jié)果是""(空字符串)。 |
firstname = "Joan "; lastname = "Flender"; trace(firstname + middlename + lastname); // Joan undefinedFlender |
firstname = "Joan "; lastname = "Flender"; trace(firstname + middlename + lastname); // Joan Flender |
|
|
當(dāng)把字符串轉(zhuǎn)換為邏輯值時(shí),如果該字符串的長(zhǎng)度>0,其結(jié)果為true;如果該字符串為空串,其結(jié)果為false。 |
當(dāng)把字符串轉(zhuǎn)換為邏輯值時(shí),首先把它轉(zhuǎn)換為數(shù)值,如果該數(shù)值非0,其結(jié)果為true,否則為false。 |
當(dāng)設(shè)置數(shù)組的長(zhǎng)度時(shí),只有有效的數(shù)字字符串可設(shè)置長(zhǎng)度。例如,"6"起作用,但" 6"或"6xyz"不起作用。 |
當(dāng)設(shè)置數(shù)組的長(zhǎng)度時(shí),即使是一個(gè)畸形的數(shù)字字符串也可設(shè)置長(zhǎng)度: |
my_array=new Array(); my_array[" 6"] ="x"; trace(my_array.length); // 0 my_array["6xyz"] ="x"; trace(my_array.length); // 0 my_array["6"] ="x"; trace(my_array.length); // 7 |
my_array=new Array(); my_array[" 6"] ="x"; trace(my_array.length); // 7 my_array["6xyz"] ="x"; trace(my_array.length); // 7 my_array["6"] ="x"; trace(my_array.length); // 7 |
出處:天極設(shè)計(jì)在線
責(zé)任編輯:qhwa
上一頁(yè) 下一頁(yè) AS代碼2:針對(duì)Flash Player7 [2]
◎進(jìn)入論壇Flash專欄版塊參加討論
|