Flash制作淡雅動態(tài)菜單:蜻蜓飛飛(1)(2)_Flash教程
推薦:ASP flash下拉列表(顯示圖片)在上一次我介紹了數(shù)據(jù)庫與flash連接方式.在這里,這一方面的我就不多說了....還有ASP中的代碼.我也略過不說.就只是貼出來...!--#includefile=conn.asp--%
interval層上畫一些間隔來分隔這些按鈕。把剛做好的菜單轉(zhuǎn)化為元件,如下圖所示。鏈接名為menu,AS 2.0類為Menu,注重大小寫。
這是在FLA文件上的最后一步動作了�;氐街鲌鼍�。如下圖:
在bg層上畫一些花花草草做背景在line層上畫一半透明的白色長條,這只是給菜單起裝飾作用。在menu層上拖入剛才做好的Menu元件。一切OK,保存吧。后面就該AS代碼出場了。
建一個文本文件,保存為Menu.as,找到上面貼子中有“鏈接名為menu,AS 2.0類為Menu,注重大小寫”這么一句話。對了,必須命名為Menu,這樣保持與AS 2.0類為Menu相一致。
下面是文件中的代碼
/* * author 西西 * date 2006.04 */
class Menu { //按鈕的實例名
private var home:MovieClip;
private var photo:MovieClip;
private var diary:MovieClip;
private var work:MovieClip;
private var music:MovieClip;
private var bug:MovieClip;//晴蜓的實例名
private var ballTween:Object;//用來使用Tween類的對像
private var DEPTH_1:Number;
private var TEXTINITCOLOR:Number;
private var TEXTOVERCOLOR:Number;
//構(gòu)造函數(shù)
function Menu() {
TEXTINITCOLOR = 0x707D37;//文字初始顏色
TEXTOVERCOLOR = 0xFFFFFF;//鼠標(biāo)經(jīng)過文字的顏色
DEPTH_1 = 1;//深度
showMenuText();//設(shè)定按鈕邊上的文字內(nèi)容
initBtn();//菜單中所有的功能都在此函數(shù)中 };
private function showMenuText():Void {
home.txt.text = "首頁";
photo.txt.text = "西西照片";
diary.txt.text = "西西日記";
work.txt.text = "西西作品";
music.txt.text = "我的音樂"; }
private function initBtn():Void {
var ins = this;//為了能在onRollOver等函數(shù)中使用全局變量而設(shè)
bug._x = home._x;//設(shè)定晴蜓的初始位置,讓它停在首頁的上面
bug.gotoAndStop(1);//設(shè)定晴蜓翅膀的初始狀態(tài)為靜止
//將幾個按鈕的實例放至一數(shù)組中,目的為節(jié)約代碼
var BtnArr:Array = new Array(home,photo,diary,work,music);
for(var i=0;i;//按順序取出每一個按鈕
//當(dāng)鼠標(biāo)經(jīng)過按鈕時,蜻蜓開始向著按鈕的方向飛,飛到了就停下來。 mc.onRollOver =function() { //當(dāng)每一按鈕在鼠標(biāo)經(jīng)過時,設(shè)至其文字顏色
ins.setTextColor(this,ins.TEXTOVERCOLOR); //當(dāng)鼠標(biāo)經(jīng)過時加載光線劃過效果
this.attachMovie("flash","flash" 2,2);
//將沿未完成的蜻蜓飛行的動作停止 ins.ballTween.stop();
//計算蜻蜓和當(dāng)前鼠標(biāo)所指按鈕間的距離,目的為下面的實現(xiàn)蜻蜓轉(zhuǎn)向所指按鈕方向
var instance:Number = this._x - ins.bug._x;
//假如蜻蜓是面向左,而所指按鈕在晴蜓的右面,則使蜻蜓面向右轉(zhuǎn)。
if(instance>0 && ins.bug._xscale>0) {
ins.bug._xscale = - ins.bug._xscale; } //同上,在按鈕在蜻蜓左邊時,使它面向左
if(instance<0 && ins.bug._xscale<0) {
ins.bug._xscale = - ins.bug._xscale; }
//實現(xiàn)蜻蜓翅膀扇動效果
ins.bug.play();
//使用Tween類實現(xiàn)蜻蜓的飛行
//Strong easeOut為從開始到結(jié)束作減速運動 //Strong easeIn為從開始到結(jié)束作加速運動
var easeType = mx.transitions.easing.Strong.easeOut;
//蜻蜓開始飛時的位置
var begin = ins.bug._x; //蜻蜓飛結(jié)束時的位置
var end = this._x; //飛行共用時間
var time = 2; //指明飛行的物體是蜻蜓
var mc = ins.bug; //飛吧,飛吧
ins.ballTween = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time, true);
//當(dāng)飛完后,蜻蜓翅膀停止扇動
ins.ballTween.onMotionFinished = function() {
ins.bug.gotoAndStop(1); }; };
//當(dāng)鼠標(biāo)離開所指按鈕時,蜻蜓就飛回家
mc.onRollOut = function() { //設(shè)定字的顏色 ins.setTextColor(this,ins.TEXTINITCOLOR);
//移除光線劃過效果 var mcflash:MovieClip = this.getInstanceAtDepth(2); mcflash.removeMovieClip(); //讓蜻蜓的頭轉(zhuǎn)向首頁的方向 if(ins.bug._xscale<0) { ins.bug._xscale = - ins.bug._xscale; }
//停止尚未完成的飛行動作 ins.ballTween.stop();
//實現(xiàn)蜻蜓翅膀扇動效果 ins.bug.play();
//開始飛行啦,這里None采用勻速飛行
var easeType = mx.transitions.easing.None.easeOut;
var begin = ins.bug._x;
//向著首頁的方向飛
var end = ins.home._x;
var time = 4;
var mc = ins.bug;
ins.ballTween = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time, true);
ins.ballTween.onMotionFinished = function() { ins.bug.gotoAndStop(1); }; }; }
//將各個小圖標(biāo)加載到文字的左邊
var pichome:MovieClip = home.attachMovie("home","home" DEPTH_1,DEPTH_1);
var picphoto:MovieClip = photo.attachMovie("photo","photo" DEPTH_1,DEPTH_1);
var picdiary:MovieClip = diary.attachMovie("diary","diary" DEPTH_1,DEPTH_1);
var picwork:MovieClip = work.attachMovie("work","work" DEPTH_1,DEPTH_1);
var picmusic:MovieClip = music.attachMovie("music","music" DEPTH_1,DEPTH_1); //點擊各個按鈕后,所執(zhí)行的代碼,想要做什么,自己隨便寫吧
home.onRelease = function() { }
photo.onRelease = function() { }
diary.onRelease = function() { }
work.onRelease = function() { }
music.onRelease = function() { }
} //設(shè)置字的顏色
private function setTextColor(mc:MovieClip,usecolor:Number):Void {
var my_fmt = new TextFormat();
my_fmt.color = usecolor;
mc.txt.setTextFormat(my_fmt); } }
按CTRL ENTER測試。
其實這個菜單還是有許多需要修改的地方。比如增加菜單中按鈕的個數(shù)之類就不怎么方便。應(yīng)該和外部提供一個很好的接口。另外關(guān)于按鈕的排列,之間的間隔大小也應(yīng)由程序控制,并且應(yīng)更加靈活。
分享:flash與數(shù)據(jù)庫的連接確切地說..flash是不可以直接與數(shù)據(jù)庫連接的.只能是通過ASP(只是我比較了解ASP,也可以是其他的PHP/JSP等);所以呢.首先,先在ASP里編寫好連接數(shù)據(jù)庫的語句%dim
- 相關(guān)鏈接:
- 教程說明:
Flash教程-Flash制作淡雅動態(tài)菜單:蜻蜓飛飛(1)(2)
。


