Flash AS 制作個(gè)性月歷實(shí)例教程_Flash教程
推薦:刪除Flash右鍵菜單的兩種方法經(jīng)�?吹紽lash的右鍵菜單中只顯示了很少的幾個(gè)菜單項(xiàng),那么這個(gè)是怎么做到的呢!?其實(shí)實(shí)現(xiàn)這個(gè)效果并不難,只要用幾句AS就能搞定了!第一種寫(xiě)法:以下為引用的內(nèi)容
先看效果(動(dòng)態(tài)的噢,隨時(shí)打開(kāi)都隨時(shí)顯示當(dāng)月當(dāng)天)
(附.swf文件)
新建一圖層,命名為圖片,在第一幀將導(dǎo)入的圖片拖到場(chǎng)景中,在屬性面板中調(diào)整其大小為500x280,在對(duì)齊面板中使其相對(duì)于舞臺(tái)水平居中、頂對(duì)齊,如圖:
接下來(lái),新建一圖層,命名為:“星期”,在圖片的下面畫(huà)一文本框,屬性為:靜態(tài)文本、字體紅色,字體大小15,宋體。在文本框中輸入:“日 一 二 三 四 五 六”,每字之間空兩格。
現(xiàn)在,在再創(chuàng)建一個(gè)圖層,命名為:”月“。在場(chǎng)景下半部的中間畫(huà)一個(gè)文本框,打開(kāi)屬性面板,設(shè)置文本框的屬性:設(shè)為動(dòng)態(tài)文本,命名為:mon_txt,字體大小可設(shè)為最大,可直接在字體大小框輸入100.字體顏色選淺色調(diào),我這里選粉紅色:mon_txt屬性設(shè)置如下:
接著來(lái),新建一圖層,命名為:“日”,畫(huà)一文本框,大小約為:45x22屬性設(shè)為:動(dòng)態(tài)文本,字體為黑色,宋體,字體大小13.選中文本框,按ctrl D,36次,復(fù)制36份,按每行7個(gè),矩陣排列好,放于星期的下面。從第一個(gè)文本框開(kāi)始,在屬性面板中將37個(gè)文本框,分別命名為:d0~d37,注重順序:先左后右,先上后下。
繼續(xù),新建一圖層,命名為“年”,在日的下面,畫(huà)一文本框,文本框稍放在場(chǎng)景的左邊一點(diǎn),為右邊的時(shí)鐘留下空間。屬性:動(dòng)態(tài)文本,命名為:year_txt,字體:Stencil Std,大小65.
現(xiàn)在,新建一圖形元件,命名為“時(shí)間框”,在元件編輯面板中,畫(huà)一矩形,無(wú)筆觸,填充色為深灰色,大小為225x62,點(diǎn)擊繪制對(duì)象按鈕。最后用填充變形工具調(diào)整一下。
圖為繪制對(duì)象按鈕。
再畫(huà)一個(gè)矩形,大小為203x40,筆觸黑色,填充色為放射狀,如下:
將小矩形放于大矩形之上,居中。再用直線工具,顏色為灰色,將大小矩形四個(gè)角連起來(lái)。最后效果:
回到場(chǎng)景,新建一圖層,命名為:“時(shí)間”,將“時(shí)間框”控件從庫(kù)中拖到場(chǎng)景中,放于右下角,在時(shí)間框上面畫(huà)六個(gè)文本框,在第2、4、6個(gè)文本框中分別輸入:“時(shí)”、“分”、“秒”。將1、3、5個(gè)文本框,設(shè)為動(dòng)態(tài)文本,分別命名為:“hh_txt” “mm_txt” “ss_txt”.如圖:
好了,到現(xiàn)在為止我們的畫(huà)面部分就完成了,按AS3的說(shuō)法,顯示對(duì)象已做完了。最后的效果應(yīng)該是這樣的:
好,現(xiàn)在我們開(kāi)始來(lái)寫(xiě)代碼,實(shí)際上這才是本文的重點(diǎn)。下面這些代碼是在AS3中實(shí)現(xiàn)的,不過(guò)這些代碼在AS2中應(yīng)該也可以。
新建一圖層,命名為action,點(diǎn)擊第一幀,打開(kāi)行為面板。開(kāi)始寫(xiě)吧:下面我們以逐步講解的方式,列出代碼,在最后,我將把代碼清單列出方便大家復(fù)制,假如你不想搞懂這些代碼,而是想直接拿來(lái)用的話,那么你可以跳到最后,將代碼清單中的代碼復(fù)制到 action圖層第一幀的行為面板中,然后,在action圖層第二幀插入要害幀,在行為面板中輸入:gotoAndPlay(1);即可。
在flash中時(shí)間和日期都要用到date對(duì)象,所以我們,首先要?jiǎng)?chuàng)建一個(gè)date對(duì)象,在第一行輸入:
以下為引用的內(nèi)容:
var date:Date = new Date();//創(chuàng)建一個(gè)名為date的Date對(duì)象。
接下來(lái),我們利用剛創(chuàng)建的Date對(duì)象來(lái)獲取當(dāng)前日期、時(shí)間:
以下為引用的內(nèi)容:
var year = date.getFullYear ();
var mon = date.getMonth();
var day = date.getDate();
var hh = date.getHours();
var mm = date.getMinutes();
var ss = date.getSeconds();
我們先讓時(shí)鐘走起來(lái):
以下為引用的內(nèi)容:
hh_txt.text = hh;
mm_txt.text = mm;
ss_txt.text = ss;
在action圖層的第二幀,插入要害幀,在行為面板中輸入:
以下為引用的內(nèi)容:
gotoAndPlay(1);//有了這一句,時(shí)鐘才會(huì)走動(dòng)。
現(xiàn)在可以點(diǎn)“控制“-”測(cè)試影片“,看看,時(shí)鐘應(yīng)該開(kāi)始起動(dòng)了�;氐綀�(chǎng)景,回到action圖層第一幀行為面板,我們接著上面的代碼,往下寫(xiě):
以下為引用的內(nèi)容:
year_txt.text = year;//在舞臺(tái)上顯示當(dāng)前年號(hào)
mon_txt.text = mon 1//在舞臺(tái)上顯示當(dāng)前月份,因?yàn)間etMonth()返回的是0~11,0代表1月,依次,所以當(dāng)前月份應(yīng)該是mon 1.
年、月、時(shí)、分、秒都已經(jīng)顯示出來(lái)了,接下來(lái)我們來(lái)顯示日,要顯示日,有點(diǎn)麻煩,上面那些內(nèi)容在舞臺(tái)中只顯示一個(gè),而日要顯示30個(gè)左右,而且每個(gè)月天數(shù)還不一樣。所以我們首先要確定,當(dāng)前月的天數(shù),我們將一年中每月的天數(shù)放到一個(gè)數(shù)組中,然后根據(jù)當(dāng)前月份去找相應(yīng)的數(shù)組元素就行了。
以下為引用的內(nèi)容:
var days:Array = [31,28,31,30,31,30,31,31,30,31,30,31];
現(xiàn)在問(wèn)題又出來(lái)了,假如是潤(rùn)年,2月是29天,而不是28天,所以又必須判定當(dāng)前年,是不是潤(rùn)年,潤(rùn)年是能被4整除并且不能被100整除或者能被400整除的年份,所以下面這樣寫(xiě):
以下為引用的內(nèi)容:
if (year%4 == 0 && year% 100 <> 0 || year@0 == 0) {
days.splice(1,1, 29);//將數(shù)組中第二個(gè)原素28用29替換。
}
var mondays = days[ mon ];//獲得當(dāng)前月的天數(shù)。
var oneday:Date = new Date(year,mon,1);//創(chuàng)建一個(gè)本月1號(hào)的Date對(duì)象:oneday
var weekday = oneday.getDay ();//創(chuàng)建一個(gè)本月1號(hào)為星期幾的變量weekday, getDay()返回的是0~6的數(shù)字,0代表星期天,其它為相應(yīng)的星期。
差不多了,我們可以顯示號(hào)數(shù)了:
以下為引用的內(nèi)容:
function showday () {
var i;
var j = weekday;
for ( i =1;i <= mondays;i ) {//從1號(hào)到當(dāng)前月的天數(shù)循環(huán)。
this["d" j].text = i;//依次顯示號(hào)數(shù)
j = 1;
}
var today = (day weekday) -1;// 獲得今天的位置,即今天的號(hào)數(shù)加上1號(hào)的星期數(shù),因?yàn)轱@示號(hào)的文本框從d0開(kāi)始,所以要減1.
this["d" today].textColor
= 0xFF0000;//將今天的日期顯示為紅色。
}
showday();
好了,應(yīng)該差不多了,測(cè)試看看,那么現(xiàn)在一個(gè)當(dāng)月的月歷已顯示出來(lái)了,而且今天的號(hào)數(shù)還以紅色高亮顯示。是不是還可以做點(diǎn)啥呢?對(duì)了,我們可以把節(jié)日,或你及親朋的生日,或是你覺(jué)得的重要日子提示并高亮顯示。很不幸的是,因?yàn)檗r(nóng)歷公歷對(duì)照的月歷制作太過(guò)麻煩,本文并不涉及農(nóng)歷,所以中國(guó)人民的很多傳統(tǒng)節(jié)日就無(wú)法高亮顯示了。
下面的代碼將對(duì)一些節(jié)日進(jìn)行提示并高亮顯示:
以下為引用的內(nèi)容:
var jrname;
var jrday;
function showjrday ( ) {
this["d" jrday].autoSize = TextFieldAutoSize.LEFT;//設(shè)置顯示節(jié)日的文本框大小可調(diào)。
this["d" jrday].multiline = true;// 設(shè)置顯示節(jié)日的文本框?yàn)槎嘈小?/P>
this["d" jrday].wordWrap = true;// 設(shè)置顯示節(jié)日的文本框可自動(dòng)換行。
this["d" jrday].text = jrname; //將節(jié)日名稱賦給顯示節(jié)日的文本框。
this["d" jrday].textColor = 0xFF0000;//節(jié)日設(shè)為紅色。
}
下面的代碼,根據(jù)不同的節(jié)日,高亮顯示,你可以按下面的格式,將自己的重要日子加進(jìn)去。
以下為引用的內(nèi)容:
switch (mon) {
case 0:
jrname = "1元旦"
jrday = (1 weekday) -1;
showjrday();
break;
case 1:
jrname = "14情人節(jié)";
jrday = (14 weekday) -1;
showjrday();
break;
case 2:
jrname = "8國(guó)際婦女節(jié)";
jrday = (8 weekday) -1;
showjrday();
break;
case 3:
jrname = "5清明節(jié)";
jrday = (5 weekday) -1;
showjrday();
break;
case 4:
jrname = "1國(guó)際勞動(dòng)節(jié)";
jrday = (1 weekday) -1;
showjrday();
jrname = "4青年節(jié)";
jrday = (4 weekday) -1;
showjrday()
break;
case 5:
jrname = "1國(guó)際兒童節(jié)";
jrday = (1 weekday) -1;
showjrday();
break;
case 6:
jrname = "1建黨節(jié)";
jrday = (1 weekday) -1;
showjrday();
break;
case 7:
jrname = "1建軍節(jié)";
jrday = (1 weekday) -1;
showjrday();
break;
case 9:
jrname = "1國(guó)慶節(jié)";
jrday = (1 weekday) -1;
showjrday();
break;
case 11:
jrname = "25圣誕節(jié)";
jrday = (25 weekday) -1;
showjrday();
break;
}
完了,祝你成功!
代碼清單:
以下為引用的內(nèi)容:
var date:Date = new Date();
var year = date.getFullYear ();
var mon = date.getMonth();
var day = date.getDate();
var hh = date.getHours();
var mm = date.getMinutes();
var ss = date.getSeconds();
hh_txt.text = hh;
mm_txt.text = mm;
ss_txt.text = ss;
mon_txt.text = mon 1
var oneday:Date = new Date(year,mon,1);
var days:Array = [31,28,31,30,31,30,31,31,30,31,30,31];
if (year%4 == 0 || year@0 == 0) {
days.splice(1,1, 29);
}
var mondays = days[ mon ];
var weekday = oneday.getDay ();
year_txt.text = year;
function showday () {
var i;
var j = weekday;
for ( i =1;i <= mondays;i ) {
this["d" j].text = i;
j = 1;
}
var today = (day weekday) -1;
this["d" today].textColor
= 0xFF0000;
}
showday();
var jrname;
var jrday;
function showjrday ( ) {
this["d" jrday].autoSize = TextFieldAutoSize.LEFT;
this["d" jrday].multiline = true;
this["d" jrday].wordWrap = true;
this["d" jrday].text = jrname;
this["d" jrday].textColor = 0xFF0000;
}
switch (mon) {
case 0:
jrname = "1元旦"
jrday = (1 weekday) -1;
showjrday();
break;
case 1:
jrname = "14情人節(jié)";
jrday = (14 weekday) -1;
showjrday();
break;
case 2:
jrname = "8國(guó)際婦女節(jié)";
jrday = (8 weekday) -1;
showjrday();
break;
case 3:
jrname = "5清明節(jié)";
jrday = (5 weekday) -1;
showjrday();
break;
case 4:
jrname = "1國(guó)際勞動(dòng)節(jié)";
jrday = (1 weekday) -1;
showjrday();
jrname = "4青年節(jié)";
jrday = (4 weekday) -1;
showjrday()
break;
case 5:
jrname = "1國(guó)際兒童節(jié)";
jrday = (1 weekday) -1;
showjrday();
break;
case 6:
jrname = "1建黨節(jié)";
jrday = (1 weekday) -1;
showjrday();
break;
case 7:
jrname = "1建軍節(jié)";
jrday = (1 weekday) -1;
showjrday();
break;
case 9:
jrname = "1國(guó)慶節(jié)";
jrday = (1 weekday) -1;
showjrday();
break;
case 11:
jrname = "25圣誕節(jié)";
jrday = (25 weekday) -1;
showjrday();
break;
}
分享:卸載Flash插件的方法下載MacromediaFlashPlayer卸載程序:FlashPlayer8卸載程序Windows:uninstall_flash_player.exe(178K)MacOSX:uninstall_flash_player_osx.hqx(2
- as中禁用ESC鍵
- AS3.0 圖片變黑白 圖片彩色變黑白代碼
- flash as3.0 跨域的解決辦法
- 模板無(wú)憂FLASH透明代碼
- Flash教你制作卡通MM眨眼睛動(dòng)畫(huà)
- Flash從零開(kāi)始學(xué)習(xí)創(chuàng)建單選按鈕
- Flash繪制小龍與花插畫(huà)場(chǎng)景
- Flash程序的測(cè)試方法
- Flash CS4文字顏色緩動(dòng)特效
- 網(wǎng)頁(yè)中演示類FLASH動(dòng)畫(huà)制作規(guī)范
- Flash CS3循環(huán)背景的運(yùn)用技巧
- Flash鼠繪技巧教你制作紅綠色的樹(shù)葉
Flash教程Rss訂閱網(wǎng)站制作教程搜索
Flash教程推薦
- flash action 詳解(7)
- Flash AS中很實(shí)用的緩動(dòng)函數(shù)
- Flash AS教程:圖片環(huán)繞旋轉(zhuǎn)動(dòng)畫(huà)
- Flash:通過(guò)一個(gè)實(shí)例學(xué)習(xí)attachMovie的用法
- 網(wǎng)頁(yè)Flash動(dòng)畫(huà)文件無(wú)法顯示的解決方法
- Flash實(shí)例教程:多張圖片循環(huán)滾動(dòng)
- FlashMX2004建立自定義類package
- Flash AS制作一個(gè)鉛筆畫(huà)圖程序
- Flash互動(dòng)電子地圖制作手冊(cè)——入門(mén)實(shí)例
- Flash AS教程:用動(dòng)態(tài)遮罩實(shí)現(xiàn)液化效果
猜你也喜歡看這些
- 相關(guān)鏈接:
- 教程說(shuō)明:
Flash教程-Flash AS 制作個(gè)性月歷實(shí)例教程
。








