Director實例剖析:在Director MX 2004運用Flash里面地函數
2024-09-08 19:27:01
供稿:網友
在director mx 2004使用flash里面的函數
現在在director mx 2004中我們可以直接使用flash里面的函數了。這樣我們可以將一些flash實現起來比較方便的功能交給flash去完成。
下面我們還是用一個簡單的例子來說明,希望能起到拋磚引玉的效果。
我們這里介紹的是一個時鐘顯示的范例,就是顯示系統的星期,年,月,日,時,分,秒等等。以前我們做這個是用datetime xtra,里面提供了返回上述的7個值的函數。
今天我們是用flash來做,首先,我們在flash的幀腳本里面寫好我們需要的函數,這里我寫了上述的7個函數(當然你可以進一步擴充),代碼如下:
//返回小時,范圍0-23
function gethours() {
mydate = new date();
return mydate.gethours();
}
//返回分鐘,范圍0-59
function getminutes() {
mydate = new date();
return mydate.getminutes();
}
//返回秒數,范圍0-59
function getseconds() {
mydate = new date();
return mydate.getseconds();
}//返回一個4位數的年份,如2004
function getyear() {
mydate = new date();
return mydate.getfullyear();
}
//返回月份,范圍1-12
function getmonth() {
mydate = new date();
return mydate.getmonth()+1;
}
//返回日期,范圍1-31
function getdate() {
mydate = new date();
return mydate.getdate();
}
//返回星期,范圍0-6,0表示星期天
function getweekday() {
mydate = new date();
return mydate.getday();
}
下面我們,將其導入到到d2004中,放置到第一個通道上(這里我們給該精靈取了一個名字“dateobj“,這樣就算放到其他通道我們也不用改代碼了,這也是2004新增的特性),放在舞臺顯示區外面(因為我們只用其中的函數而不需要顯示它),這樣我們就可以調用里面的函數了,代碼如下(這是一個電影腳本里面的全局函數):
on showtime
--因為后面要多次用到 sprite("dateobj") ,故把它賦給一個變量,以后就可以當作一個對象調用。
date=sprite("dateobj")
dl=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
--將取得的星期幾通過列表轉換成中文
w=dl[date.getweekday()+1]
--過得年月日
d=integer(date.getyear()) & "年" & integer(date.getmonth()) & "月" & integer(date.getdate()) & "日"
--獲得時分秒
h=integer(date.gethours())
--不直接用m=integer(date.getminutes(),而是m=string(integer(date.getminutes())+100),
--然后用 delete char 1 of m,刪除第一個字符,使其始終保持長度為2,如8點01分就會顯示
--為08:01而不是8:1
m=string(integer(date.getminutes())+100)
delete char 1 of m
s=string(integer(date.getseconds())+100)
delete char 1 of s
t=h & ":" & m & ":" & s
--將得到的內容給timetext member 來顯示。
put w & "-" && d && t into member "timetext"
end
最后在幀腳本中加入下面代碼就可以顯示當前時鐘了。
on exitframe me
showtime()
go the frame
end
看看是不是舞臺上有一個動態更新的時鐘了。我們還可以做成很漂亮的指針式時鐘等等。
這里還是有個小問題,就是函數的返回值是整型的到了d中卻變成了浮點型(所以要用integer函數來轉成整型),當然這對我們使用影響不大,但還是值得注意。
這里我們通過一個簡單的例子說明了如何在d 2004中調用flash里面的函數(這里我們是調用的自定義函數),這給我們的創作帶來了更大的靈活性。
下載范例