顯示具有
ActionScript 3.0 教學 標籤的文章。
顯示所有文章
顯示具有
ActionScript 3.0 教學 標籤的文章。
顯示所有文章
宣告變數依宣告的位置,即使是同樣名字的變數,也可以有不同的定義。 以下的例子簡單比較了兩者的不同: -------------------------------------------------------------------- var var1:int=10; //在函數外宣告var1 function test() { var var1:int=15; //在函數內宣告同名的var1 trace("in test var1="+var1); } test(); trace("out test var1="+var1); --------------------------------------------------------------------- 最後輸出的結果: in test var1=15 out test var1=10 顯示兩者雖然都叫做var1,但數值卻不相同。 ActionScript3.0
本來是該睡覺的時間了,不知怎麼的卻睡不著,乾脆就離開被窩寫寫東西。 就當是複習囉,雖然之前都講過了,總是用多種方式來驗證一下,可以加深印象。 今天的ActionScript3.0辭典:return( 結束函式並傳回一個值) 這是最簡單的寫法,各自宣告a,b的屬性,然後相加 --------------------------------- var a:int; var b:int; a=10; b=5; trace(a+b); --------------------------------- 先定義好getSum的函式,並且在函式裡傳回a+b --------------------------------- function getSum(a,b) { return a + b; } trace(getSum(5,10)); ----------------------------------- 有點自找麻煩的寫法,不過還是認識一下它的邏輯 ----------------------------------- function mySum(a,b){ var sum=int; sum=a+b return sum } trace(mySum(5,10)) ---------------------------------- 以上三個做法都會得到相同的結果,要記住唷。
Flash的應用愈來愈多元化,尤其是網路介面的層面,更加強了互動性。今天就要和大家分享一下用Flash 來製作聊天室功能的介面,有點類似Web MSN 的功能,配合ASP做成網頁,對ActionScript有興趣的讀者一定要試試唷。 以下是ActionScript的內容 ,檔名chat.fla --------------------------------------------------------------------以下為程式碼 //強迫以本機編碼顯示,這樣載入中文時將不會產生亂碼 System.useCodepage = true; //宣告介面中所使用到的組件的實體物件 var send_btn:mx.controls.Button; //送出按鈕var send_txt:mx.controls.TextInput; //輸入聊天內容的文字欄位var show_txt:mx.controls.TextArea; //顯示聊天內容的文字區域var yourname_txt:mx.controls.TextInput; //輸入自己姓名的文字欄位 //宣告一個LoadVars類別的物件,用來載入和送出聊天的內容 var my_lv:LoadVars = new LoadVars(); //下面的onData事件,將在取得聊天內容的資料時發生 my_lv.onData = function(data) { //判斷取得的資料data是否為空 if (data != undefined) { //在文字區域中顯示聊天內容 show_txt.text = data; //如果聊天內容超過了一屏,將文字區域中的資料滾動到最下方 show_txt.vPosition = show_txt.maxVPosition; } else { //如果沒有聊天內容,顯示的提示訊息 show_txt.text = "無聊天記錄!"; }}; //載入聊天室chat.asp檔案的聊天內容 my_lv.load("chat.asp", my_lv, "POST"); //為【送出】按鈕添加click監聽器,當點擊按鈕時呼叫送出聊天內容的函數。send_btn.addEventListener("click", btn_onClick); //為【輸入聊天內容】文字欄位添加enter監聽器,當在文字欄位中輸入聊天內容,然後按下鍵時呼叫送出聊天內容的函數。 send_txt.addEventListener("enter", btn_onClick); //送出聊天內容的函數 function btn_onClick() { //下面兩行?述分別用來指定聊天的內容和姓名 my_lv.talk = send_txt.text; my_lv.yourname = yourname_txt.text; //將取得的資料以POST方式送出到chat.asp頁面 my_lv.sendAndLoad("chat.asp", my_lv, "POST"); //聊天內容送出清空文字欄位中的聊天內容 send_txt.text = ""; //並將焦點設定到送出聊天內容的文字欄位中 send_txt.setFocus();} //設定每隔一秒鐘呼叫一次readData()函數 setInterval(readData, 1000); function readData() { my_lv.talk = ""; my_lv.yourname = ""; //重新讀取聊天內容 my_lv.sendAndLoad("chat.asp", my_lv, "POST"); } -----------------------------------------------------------------程式結束 這是搭配的ASP程式碼,檔名是chat.asp --------------------------------------------------------------------以下為程式碼 <% talk = Trim(Request("talk")) yourname = Trim(Request("yourname")) If talk <> "" Then Application.Lock() out = out & "來自" out = out & Request.ServerVariables("REMOTE_ADDR") & "的 " out = out & yourname & now & " 說: " & talk & " " Application("show") = Application("show") & out Application.UnLock() End If Response.Write(Application("show")) %> -----------------------------------------------------------------程式結束 這是chat.html 的內容 ----------------------------------------------------------------http://www.w3.org/1999/xhtml " xml:lang="zh-TW" lang="zh-TW">chat http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0 " width="400" height="400" id="chat" align="middle">http://www.macromedia.com/go/getflashplayer " /> ------------------------------------------------------------------- 把chat.fla匯出成swf檔,然後把所有檔案上傳到伺服器,就可以執行囉。大家也可以試著把layout改得更好看點,就是個簡單好用的聊天介面囉。
要正式寫程式之前,為了增加程式的可讀性,也就是以後的每個人 都能看懂,可以維護,程式段落裡一定要加上註解 程式註解// ---------------------------- var i:int; //這一行的意思是 宣告i的屬性是整數 ---------------------------- //後面跟隨的就是程式註解,並不會被執行 多行程式註解 /*...*/ 我個人是覺得不太好用,也用不到,要是程式註解寫那麼長,不是 程式有問題,怕人看不懂,就是表達能力有問題,贅字太多。 ---------------------------- var i:int; /* 宣告變數i的屬性是整數 這是第一行註解 這是第二行註解 這是第三行註解 */ var s:String; //s是字串 ---------------------------- 下面我們來練習寫一小段程式 --------------------------- 1 var a:int, b:int; //宣告 a為整數,b也為整數 2trace(a); 3 a=10; 4 trace(b); 5 b=a+5; 6 trace(b); --------------------------- 如果在flash 裡頭執行的話,結果應該是 0 0 15 因為一開始宣告a,b是整數,而整數是從0開始的,所以輸出0 我們在第三行宣告a的值是10 第5行定義b=a+5 這時候的a=10,所以b就等於15 因此最後輸出的結果就是15了 再讓我們複習一下上次講的function函數 ---------------------------------------- function plus(){ var a:int, b:int; //宣告 a為整數,b也為整數 trace(a); a=10; trace(b); b=a+5; trace(b); } plus(); ----------------------------------------- 這樣輸出結果應該也會是一樣的唷,趕快去試試看吧!
其實之所以會開始寫ActionScript的文章,也是因為在網路上找不到這一類的免費資源,要到論壇裡頭發問或是爬文,也好像是大海撈針一樣。另外一個重點,坊間出的相關書籍,我實在看不下去,工程師or程式設計師翻譯出來的書,我認為:那根本不是翻譯,水準大概就比大家用Yahoo奇摩翻譯翻出來好一些。如果是中文創作的書,也只是寫給同樣IT背景的人看,用抽象的文字來說明抽象的程式邏輯,用術語來說明術語,我猜,也是藉此彰顯一下程式設計的博大精深吧! 回歸今天的重點,就是要說明 function{ } 的用法,function{ }一般叫作"宣告函數",翻譯成中文的意思是"定義一段程式的功能,以後可以直接呼叫來使用",比如說,我們定義 welcome 這個函數的功能是在畫面上顯示"歡迎光臨" ,那麼該如何寫呢? ---------------------------- function welcome(){ trace("歡迎光臨"); } ---------------------------- 當我們呼叫 welcome 的時候,畫面就會顯示 歡迎光臨 四個大字。由此也同時可以了解,trace 的功能就在於將後面的字串,在畫面上顯示出來。 另外有一種情況,我們每次想顯示的字都不太一樣,那就可以把函數裡頭的變數保留起來,每次呼叫的時候再指定,例如: ---------------------------- function welcome(msg){ trace(msg); } ------------------------------ 當我們呼叫 welcome的時候,可以同時指定msg的值(字串內容),那麼就可以隨不同情況來應用welcome 這個函數了。 當然,也可以利用function來做運算,範例如下: ----------------------------------------------- function count(x){ return x+1; } ----------------------------------------------- 呼叫count函數的時候,會傳回 x+1 的運算結果(return為傳回函數值) 好啦,一次講太多,會消化不良,今天就先講到這兒吧。讀者們應該清楚,版主最近接了新任務,今天能有時間寫文章算是萬幸啊,醫生已經交代我,要小心猛爆性肝炎上身...。所以呢,現在版主要力行正常作息,才能再陪大家久一點...。有時候沒能發文,還請大家多包涵囉。
設定物件屬性:
my_object.width=100
我的物件的寛度=100
運用物件屬性值:
myWidth=my_object.width 我的寛度=我的物件的寛度(由上一段可知=100) 呼叫物件: my_object.stop() 停片我的物件播放 呼叫物件並傳回一個值: myTime=my_object.getTimer() 我的播放時間=我的物件的播放時間 函數宣告與撰寫: funtion myFunction(){ trace("Play"); } 定義myFuntion的功能:畫面顯示 Play 字串 呼叫函數並引用參數: function myFunction(myX,myY){ this.X=myX; this.Y=myY; } myFunction(100,100); 定義myFuntion的功能 呼叫函數並指定函數中的參數值