顯示具有 ActionScript 3.0 教學 標籤的文章。 顯示所有文章
顯示具有 ActionScript 3.0 教學 標籤的文章。 顯示所有文章

2008年5月6日 星期二

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

本來是該睡覺的時間了,不知怎麼的卻睡不著,乾脆就離開被窩寫寫東西。
就當是複習囉,雖然之前都講過了,總是用多種方式來驗證一下,可以加深印象。
今天的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))
----------------------------------
以上三個做法都會得到相同的結果,要記住唷。

2008年5月3日 星期六

ActionScript3.0教學 - 互動聊天介面

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">chathttp://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改得更好看點,就是個簡單好用的聊天介面囉。

2008年5月1日 星期四

ActionScript3.0教學 程式註解和var

要正式寫程式之前,為了增加程式的可讀性,也就是以後的每個人 都能看懂,可以維護,程式段落裡一定要加上註解
程式註解//
----------------------------
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();
-----------------------------------------
這樣輸出結果應該也會是一樣的唷,趕快去試試看吧!



2008年4月28日 星期一

ActionScript 3.0辭典 function{ }

其實之所以會開始寫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為傳回函數值)

好啦,一次講太多,會消化不良,今天就先講到這兒吧。讀者們應該清楚,版主最近接了新任務,今天能有時間寫文章算是萬幸啊,醫生已經交代我,要小心猛爆性肝炎上身...。所以呢,現在版主要力行正常作息,才能再陪大家久一點...。有時候沒能發文,還請大家多包涵囉。

2008年4月20日 星期日

ActionScript 3.0 的撰寫方式

設定物件屬性:

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的功能
呼叫函數並指定函數中的參數值

Google幫你找

使用Google搜尋站內文章 輸入關鍵字