吳瓊香
摘要:針對《多媒體素材與課件制作實訓(xùn)》課程教學(xué)中存在的一些問題:學(xué)生對ActionScript3.0沒有一個較為全面規(guī)范的認(rèn)識;腳本輸入錯誤率高,無法根據(jù)錯誤提示找到原因,學(xué)生程序編寫及調(diào)試能力差。本文以多媒體課件開發(fā)涉及的動作腳本內(nèi)容為任務(wù),提出教學(xué)中應(yīng)讓學(xué)生從認(rèn)識ActionScript3.0腳本、遵守ActionScript3.0的語法規(guī)則、編寫ActionScript3.0和調(diào)試ActionScript3.0四個方面進(jìn)行加強(qiáng),逐步提高學(xué)生的Flash代碼編寫能力。
關(guān)鍵詞:動作腳本;FLASH;多媒體課件;非計算機(jī)專業(yè)學(xué)生
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)32-0198-04
Discussion on Script Application of FLASH Multimedia Courseware
WU Qiong-xiang
(Guangdong Preschool Normal College in Maoming,Maoming 525000,China)
Abstract: Some problems in the teaching of Multimedia material and courseware making: Students do not have a more comprehensive understanding of the ActionScript3.0,Script input error rate is high, Students cant find the reasons according to the error, Students' programming and debugging ability is poor. In this paper, multimedia courseware development involves the action script content as a task, Based on multimedia courseware development involves actionscript content for a task, put forward the teaching should be to let the students know from actionscript 3 scripts, abide by the rules of grammar, writing, actionscript 3 actionscript 3 and debug actionscript 3 four aspects to strengthen, gradually improve the students' ability of Flash code.
Key words:Flash,ActionScript3.0,multimedia courseware,Non computer professional students
ActionScript,即動作腳本,也稱其為代碼,是FLASH最新版本的面向?qū)ο缶幊陶Z言,該語言具有非常強(qiáng)大的交互功能,并可以對Flash動畫進(jìn)行更靈活地控制。想要做出一個精致優(yōu)美又有交互功能的多媒體課件, Flash和Action Script 3.0成為最佳的選擇。
我校非計算機(jī)專業(yè)的師范生在二年級學(xué)習(xí)《多媒體素材與課件制作實訓(xùn)》課程,課程學(xué)習(xí)一年,第一學(xué)期學(xué)習(xí)FLASH動畫部分;第二學(xué)期學(xué)習(xí)Action Script 3.0并制作一個完整綜合的多媒體課件,學(xué)生沒有計算機(jī)相關(guān)的編程基礎(chǔ),課堂中又多以實例講解為主,在學(xué)生實踐中發(fā)現(xiàn),學(xué)生輸入代碼錯誤太多,他們無法根據(jù)代碼運行的錯誤提示找出原因進(jìn)行修改,F(xiàn)lash腳本程序調(diào)試能力較差。要想讓學(xué)生正確地編寫FLASH動作腳本,讓學(xué)生從認(rèn)識ActionScript3.0腳本、遵守ActionScript3.0的語法規(guī)則、編寫ActionScript3.0和調(diào)試ActionScript3.0四個方面進(jìn)行加強(qiáng),逐步提高學(xué)生的Flash代碼編寫能力,才能為Flash動作腳本的深入學(xué)習(xí)和多媒體課件的制作打下扎實的基礎(chǔ)。
1認(rèn)識和理解動作腳本Action Script 3.0
FLASH動作腳本有和其他計算機(jī)編程語言相同之處,但我校非計算機(jī)專業(yè)的學(xué)生從未學(xué)過任何一門計算機(jī)語言,對計算機(jī)編程知識如此缺乏的學(xué)生,想讓學(xué)生從零基礎(chǔ)開始認(rèn)識和掌握Action Script 3.0要從最簡單入門,一步一個腳印深入理解并掌握Flash動作腳本。
1.1動作腳本
是Flash測試影片生成SWF文件時指示SWF文件執(zhí)行某些任務(wù)的計算機(jī)語言。
1.2數(shù)據(jù)類型
最簡單的基礎(chǔ)數(shù)據(jù)類型如下:
1)Boolean數(shù)據(jù)類型
布爾值是一個用來表示真假的數(shù)據(jù)類型。其有2個值:true和false。Boolean的初始值為false。
布爾型變量的false值和數(shù)值0相等,而true與數(shù)值1相等。但不能直接給布爾型變量賦值為1或0,否則造成編譯器錯誤。
2)數(shù)字:int uint和Number
int:32位有符號整數(shù),用于存儲整數(shù),包括正整數(shù)和負(fù)整數(shù)。
uint:32位無符號整數(shù),只能存儲0和正整數(shù),不能存儲負(fù)整數(shù)。
umber:64為浮點數(shù),該類型可以存儲整數(shù),也可以存儲小數(shù)。
3)String數(shù)據(jù)類型(字符串)
聲明字符串的方法如下代碼所示:
聲明一個字符變量,未賦值:ar str1:String;
聲明一個字符變量,賦值為空:var str2:String="";
用類來聲明一個空字符串:var str3:String=new String();
聲明一個內(nèi)容為welcome的字符串:var str4:String="welcome";
同上效果:var str5:String=new String("welcome");
使用單引號同樣可以聲明字符串:var str6:String='welcome';
4) Array數(shù)組類型
直接聲明一個空數(shù)組:var arr1:Array=[ ];
用類來聲明一個空數(shù)組:var arr2:Array=new Array();
直接使用[ ]操作符,建立一個含有整數(shù)1,2,3,4的數(shù)組:var arr3:Array=[1,2,3,4];
使用Array類建立一個數(shù)據(jù),內(nèi)容為1,2,3,4:var arr4:Array=new Array(1,2,3,4);
使用Array類建立一個數(shù)據(jù),內(nèi)容為1,2,3,4,最后可以保留一個逗號:var arr5:Array=new Array(1,2,3,4,);
5)Object數(shù)據(jù)類型
Object的成員有兩個:(1)屬性,用來存放各種數(shù)據(jù);(2)方法,用來存放函數(shù)對象。
定義Object(對象)的方法如下代碼所示:
var obj1:Object=new Object();
var obj2:Object={};//這兩種方法構(gòu)造的結(jié)果完全相同,都是新建一個空白的Object。
使用空的大括號構(gòu)造對象時,可把對象的屬性和方法寫進(jìn)去,例如:
var obj:Object={name:"lzxt",url:"www.baidu.com"};
trace(obj.name);
trace(obj.url);
代碼運行后輸出結(jié)果如下所示:
Lzxt
www.baidu.com
1.3類
類是一群擁有共同特性和行為的對象。類是面向?qū)ο缶幊痰暮诵膬?nèi)容,可通過編寫腳本把對象的屬性和方法包裝成類,也可把庫中的一個影片剪輯或聲音定義為類,編寫腳本應(yīng)用該類。在ActionScript3.0中,Adobe已經(jīng)預(yù)設(shè)了許多不同的類,用戶要創(chuàng)建這些類的實例,直接使用import關(guān)鍵字導(dǎo)入類文件即可。
1.4構(gòu)造函數(shù)
構(gòu)造函數(shù)是用于定義類的屬性和方法的函數(shù)。
函數(shù)使用function關(guān)鍵字來定義,其格式如下所示:
function 函數(shù)名(參數(shù)1:數(shù)據(jù)類型,參數(shù)2:數(shù)據(jù)類型,……):返回類型{
//函數(shù)體
}
代碼格式說明:
function:定義函數(shù)使用的關(guān)鍵字,小寫
函數(shù)名:函數(shù)的名稱,符合變量名的命名規(guī)則
小括號:必需格式,小括號內(nèi)的參數(shù)和參數(shù)類型均為可選
返回類型:定義函數(shù)的返回類型,也是可選的。
大括號:定義函數(shù)必需格式,括起來的是函數(shù)定義的程序內(nèi)容,是調(diào)用函數(shù)時執(zhí)行的代碼。
1.5函數(shù)的調(diào)用
定義一個含有默認(rèn)參數(shù)的函數(shù)HelloAS(),調(diào)用時輸入?yún)?shù)“我學(xué)習(xí)ActionScript3.0”,其代碼如下:
function HelloAS(str:String){
trace(str);
}
HelloAS("我學(xué)習(xí)ActionScript3.0");//調(diào)用函數(shù)
1.6事件
事件是當(dāng)前程序接受到的當(dāng)前發(fā)生的事情。例如,用鼠標(biāo)左鍵單擊了一下按鈕,當(dāng)前程序就接收到了按鈕被鼠標(biāo)單擊了一下這一狀況,而這一狀況就被稱為發(fā)生了鼠標(biāo)單擊事件。
1.7事件處理函數(shù)
事件處理函數(shù)是在某件事情發(fā)生之后(例如某件鼠標(biāo)事件發(fā)生),當(dāng)前程序要做出怎樣的反應(yīng),即處理某些事情。
用動作腳本事件處理函數(shù)的過程有兩步:第一步是創(chuàng)建一個事件偵聽函數(shù);第二步是使用addEventListener()方法在事件目標(biāo)或者任何顯示對象上注冊偵聽器函數(shù)。
1)創(chuàng)建事件偵聽器
事件偵聽器必須是函數(shù)類型,可以是自己定義的函數(shù),也可以是實例的一個方法。創(chuàng)建偵聽器的語法格式如下:
function 偵聽器函數(shù)名(evt:事件類型):void{……}
格式說明如下:
偵聽器函數(shù)名:命名符合變量名的命名規(guī)則
evt:事件偵聽器參數(shù),為必需,可寫成event
void:返回值必需為空,不可省略。
2)注冊事件偵聽器
addEventListener()函數(shù)用來注冊事件偵聽函數(shù)。注冊偵聽器的語法格式如下:
事件發(fā)送者.addEventListener(事件類型,偵聽器函數(shù)名);
格式說明如下:
事件發(fā)送者:實例名稱
事件類型:Event類實例或其子類的實例
偵聽器名稱:事件執(zhí)行時的偵聽器函數(shù),注意,此處的函數(shù)不要函數(shù)名后的括號。
1.8實例
實例是具體的一個對象,它可以來自庫的元件的實例,也可以通過編寫腳本創(chuàng)建已存在的類的實例。
1.9實例名稱
實例名稱是腳本中用來表示具體對象的唯一名稱。一般使用“屬性”面板為舞臺上的實例指定實例名稱。由腳本創(chuàng)建的實例,實質(zhì)在創(chuàng)建時已經(jīng)給出具體唯一的實例名稱。例如:
var Music:Sound=new Sound();
Music既是Sound類的一個實例,也是該實例的名稱。
2 ActionScript3.0語法規(guī)則
ActionScript3.0跟其他語言一樣有自己的語法,想要正確編譯和運行動作腳本,同時減少了程序運行的出錯率,必須嚴(yán)格遵守ActionScript3.0的語法規(guī)則。
2.1ActionScript3.0區(qū)別字母大小寫
ActionScript3.0是嚴(yán)格區(qū)分大小寫字母的,且字符串不能跨行。
2.2ActionScript3.0的標(biāo)點符號
ActionScript3.0的每行語句都以分號“;”結(jié)束;所有的標(biāo)點符號必須在英文輸入法狀態(tài)下輸入;
2.2.1注釋標(biāo)點符號,用于增加程序的可讀性
雙斜杠//后面是注釋,在程序中不參與執(zhí)行,用于增強(qiáng)程序的可讀性。
一對斜杠星號,星號斜杠,組合起來的內(nèi)容不參與程序執(zhí)行,例如:
stop();/* 在此幀處停止,這里面的文字不參與程序執(zhí)行*/。
2.2.2點語法
在動作腳本中,點“.”用雨表示對象或影片剪輯的屬性或方法。還用于表示影片剪輯、變量和對象的路徑。點語法表達(dá)式以對象的名稱開頭,后跟一個點,最后以要指定的屬性或方法結(jié)尾。
Flash中使用(.)運算符來訪問對象的屬性和方法,用于以下幾個方面:
1)對象后面跟點運算符的屬性名稱(方法)來引用對象的屬性(方法)
對象.屬性
對象.方法()
其示例代碼如下:
Math.PI;
Math.sin(Math.PI/2)
2)用點運算符表示包路徑,比如類文件要放在AA目錄下的AS目錄下,那么包路徑就可以表示為:AA.AS
同樣,引用包時,要使用點運算符引入包。比如要引入Sound包,那么引用的代碼為:import flash.media.Sound;
3)用點運算符描述顯示對象的路徑
比如有一個實例名稱為mc1的影片剪輯,同時mc1影片剪輯中嵌套另一個影片剪輯mc2,可以通過下面的代碼來訪問mc2:mc1.mc2.x=100;
2.2.3分號
分號(;)——表示語句結(jié)束。例如:var i:Number=50;
可以把多句代碼放在一行中,句與句之間使用分號隔開。如下面的語句:
var myint:int=1;var str:String="你好";
這樣不會使編譯器產(chǎn)生錯誤,但由于代碼位于一行當(dāng)中,給代碼閱讀造成了不便。
分號的另一個用途是在for循環(huán)中。例如:
for(var i:Number=0;i<10;1++){
trace(i);
}
2.2.4逗號
逗號——用于分隔參數(shù),比如函數(shù)的參數(shù),方法的參數(shù)等。
比如:trace(1,2,3);
2.2.5冒號
冒號——用于為變量指定數(shù)據(jù)類型。
1)嚴(yán)格指定變量或?qū)ο蟮念愋停?/p>
var i:Number=7;
var mysound:Sound=new music();
2)嚴(yán)格指定參數(shù)的類型
function welcome(firstName:String,myAge:Number){
}
3)嚴(yán)格指定參數(shù)和返回值的類型
function square(num:Number):Number{
var squared:Number=num*num;
return squared;
}
2.2.6小括號()
小括號的3種用途:
1)數(shù)學(xué)運算方面,改變運算順序。比如:
trace((2+3)*4);
小括號()
2)小括號結(jié)合逗號運算符。比如:
var i:int=1;
var j:int=3;
trace((i+j),i*j);
3)用于函數(shù)的定義,利用括號向函數(shù)或方法傳遞一些參數(shù)。例如:
trace("歡迎你!");
2.2.7中括號[]
用于數(shù)組的定義和訪問,比如:
//創(chuàng)建一個新的數(shù)組,內(nèi)容為1,2,3
var arr:Array=[1,2,3];
//輸出數(shù)組的第2個元素
trace(arr[1]);//輸出2
2.2.8大括號{}
用于編程語言程序控制,函數(shù)和類中。例如:
var i:int;
if(i==1){
trace(i);}
在面向?qū)ο蟮木幊讨?,大括號是使用最為頻繁的語句控制符號。大括號都要成對出現(xiàn),下面定義一個簡單的類,類名為Example,注意:類名的第一個字母最好大寫
新建一個as文件輸入以下代碼:
package {
public class Example {
public function Example() {
trace("這是一個例子");}}}
保存為Example.as
新建一個fla文檔,保存為Example.fla,在第1幀上輸入:
import Example;
var a:Example=new Example();
a;//測試影片輸出: 這是一個例子
2.3聲明變量和常量的方法
2.3.1聲明變量的語法
使用var關(guān)鍵字來聲明變量,格式如下:
var 變量名:數(shù)據(jù)類型;
var 變量名:數(shù)據(jù)類型=值;
2.3.2變量的命名規(guī)則
變量的命名是任意的,又是有規(guī)則、有目的的。變量的命名首先要遵循下面的幾條原則:
1)變量名可以是英文也可以是中文,但數(shù)字不能作為變量的第一個字符。
2)變量名不能是關(guān)鍵字或動作腳本文本,例如true、false、null或undefined等。特別不能使用ActionScript的保留字,否則編譯器會報錯。
3)變量名必須是唯一的。不能重復(fù)定義變量。
2.3.3使用const聲明常量
常數(shù)是其值具有始終不變的屬性,其值是不能進(jìn)行修改的。ActionScript3.0中增加了一個const關(guān)鍵字。使用const關(guān)鍵字來聲明常量,格式如下:
const 常量名:數(shù)據(jù)類型=值;
常量的應(yīng)用非常廣泛,比如數(shù)學(xué)中的PI,物理中的重力加速度。
2.4運算符
ActionScript的運算符很多,在編寫程序代碼經(jīng)常會用到運算符,比如賦值運算符“=”等。
2.5 ActionScript3.0程序
2.5.1選擇程序結(jié)構(gòu)if…else
if…else條件語句基本格式如下:
if(表達(dá)式){
代碼塊1;
}
else
{
代碼塊2;
}
說明:如果表達(dá)式的值為真,就執(zhí)行代碼塊1,否則就執(zhí)行代碼塊2。
2.5.2switch語句
switch語句相當(dāng)于一系列的if…else if…else語句,但是比if…else語句要清晰得多。switch不是對條件進(jìn)行測試獲得布爾值,而是對表達(dá)式進(jìn)行求值,并使用計算結(jié)果確定要執(zhí)行的代碼塊。
2.5.3for循環(huán)語句
for循環(huán)語句語法格式如下:
for(初始化;循環(huán)條件;步進(jìn)語句){
循環(huán)執(zhí)行的代碼塊;
}
格式說明如下:
初始化:把程序循環(huán)體中需要使用的變量進(jìn)行初始化。注意要使用var關(guān)鍵字來定義變量,否則編譯時會報錯。
循環(huán)條件:邏輯運算表達(dá)式,運算的結(jié)果決定循環(huán)的進(jìn)程,若為false,退出循環(huán)。否則繼續(xù)執(zhí)行代碼塊。
步進(jìn)語句:算術(shù)表達(dá)式,通過不斷改變變量的值,已達(dá)到需要實現(xiàn)的目標(biāo)。
3編寫動作腳本
在ActionScript3.0中,用戶只能將動作腳本附加到幀上,不能在元件實例上添加動作腳本。
3.1確定任務(wù)
在編寫動作腳本前先要明確要完成的任務(wù)并對其進(jìn)行分析,把任務(wù)化成具體的一個個小任務(wù)。
3.2編寫腳本
在FlASH中,腳本的編寫有兩種方法,一種是直接寫在時間軸的幀的動作面板上,保存在Flash文件中;另一種方法是建立獨立的ActionScript文件,再在FLA文件的幀上輸入include "文件名.as"語句調(diào)用該ActionScript文件。
3.3動作面板的使用
打開動作面板,選擇放置動作腳本的幀,即可編寫動作腳本。用戶編寫的腳本文本將以不同顏色顯示,當(dāng)輸入的是正確的命令指令時,文本將以藍(lán)色顯示,若輸入關(guān)鍵字,文本以紫色顯示,若輸入自定義的實例名、變量名、對象名時,文本以黑色顯示。文本以不同顏色顯示提示用戶輸入是否正確。
3.4使用代碼片段
點擊【窗口】【代碼片段】打開代碼片段面板,可在當(dāng)中選擇Flash預(yù)設(shè)的動作腳本片段。
4 調(diào)試腳本
菜單欄【調(diào)試】【調(diào)試影片】,通過調(diào)試影片可以查找Flash中錯誤的動作腳本。此外,用戶使用菜單欄的【控制】【測試影片】命令時也可通過“編譯錯誤”面板看到錯誤的動作腳本的提示,在編譯錯誤面板上,可根據(jù)錯誤提示找到錯誤的代碼片段,右擊錯誤信息在彈出的快捷菜單中選擇【轉(zhuǎn)到源】,可查看錯誤的源代碼。找到錯誤的動作腳本對其修改或重寫直至正確。
若要觀察某個變量的值的變化,可以使用trace語句,通過測試影片在輸出面板顯示變量數(shù)值及其變化。
5 結(jié)束語
《多媒體素材與課件制作實訓(xùn)》是我校非計算機(jī)專業(yè)二年級師范生的必須課,非計算機(jī)專業(yè)學(xué)生的計算機(jī)編程基礎(chǔ)知識幾乎是空白的,針對教學(xué)中出現(xiàn)的一些問題,本文提出如何讓編程基礎(chǔ)為零的學(xué)生逐步認(rèn)識、理解和掌握本課程所需的FLASH動作腳本術(shù)語、語法規(guī)則、動作腳本的程序和調(diào)試動作腳本為動作腳本的深入學(xué)習(xí)打下基礎(chǔ),以便完成本課程的學(xué)習(xí)目標(biāo)。
參考文獻(xiàn):
[1]王芳.基于Flash 和Action3.0技術(shù)的交互多媒體課件設(shè)計與實現(xiàn)[J].計算機(jī)光盤軟件與應(yīng)用,2012(17).
[2]肖宇.錢斌基于Flash 和Action3.0技術(shù)的交互多媒體課件設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2016,12(10).
[3]施永新.基于ActionScript3.0的Flash課件的程序框架設(shè)計[J].電腦編程技巧與維護(hù),2014(4).
[4] 芮亮. ActionScript3.0 在Flash 課件中的應(yīng)用[J].科教導(dǎo)刊,2014(20).
[5] 陳中,葉衛(wèi)東. Flash游戲在大學(xué)英語教學(xué)中的應(yīng)用研究[J].外語教學(xué)與研究,2011(31).