在FLASH互動中,建造導航是經常會碰到的,在之前的經驗分享中,我們已經進修過若何把影片剪輯作為按鈕利用,在這里進行延展,建造簡單的導航欄。
起首,新建AS3文檔(在AS2代碼中,這里需要新建AS2文檔)。
建造三個影片剪輯,影片剪輯的圖層布局如下,上層為代碼層,代碼都是stop();
第二層是文字層,要轉換當作圖形元件,并建造補間動畫,文字放年夜(吧友要的結果)
第三層是圖形層,建造外形補間動畫,由透明外形改變為紅色框外形。
在舞臺上復制出兩個同樣的影片剪輯,別離右鍵選擇直接復制。
進入影片剪輯編纂狀況,對文字層進行點竄,在第一幀選擇文字元件右鍵選擇直接復制,最后一幀選擇文字元件,右鍵選擇互換元件,互換為直接復制時生當作的元件。再進入文字元件的編纂狀況改變文字內容,同樣對第三個影片剪輯進行處置。
三個影片剪輯處置完當作如下圖所示。
設置三個影片剪輯的實例名別離為btn0,btn1,btn2,最后在本家兒時候軸的幀上編寫如下代碼:
var btn_count:int=3;//按鈕數目
var btn_index:int=-1;//按鈕索引,用于標識表記標幟那時選擇的是哪個軟件,初始狀況按鈕均處于彈起狀況
init();//初始化按鈕
function init():void
{
for(var i:int=0;i<btn_count;i++)
{
this["btn"+i].buttonMode=true;//鼠標顛末時顯示小手
this["btn"+i].addEventListener(MouseEvent.CLICK,ClickBtnEvent);//添加鼠標點擊事務
}
}
function ClickBtnEvent(e:MouseEvent):void
{
var obj:Object=e.currentTarget;//獲取點擊對象
var t:int=int(obj.name.slice(3));//獲取點擊對象的索引值
if(t==btn_index)//若是按鈕處于被點擊狀況,則無反映
{
return;
}
if(btn_index!=-1)//若是索引不是-1,即有按鈕被點擊了,則要重置被點擊的按鈕
{
this["btn"+btn_index].addEventListener(Event.ENTER_FRAME,PlayBackEvent);
}
btn_index=t;//取得索引值
obj.gotoAndPlay(2);//被點擊按鈕做出反映
}
function PlayBackEvent(e:Event):void//按鈕回復復興
{
var obj:Object=e.target;
if(obj.currentFrame!=1)
{
obj.prevFrame();
}
else
{
obj.removeEventListener(Event.ENTER_FRAME,PlayBackEvent);
}
}
運行即可看到結果。
AS2文檔的代碼如下(其它內容建造同AS3):
var btn_count:Number=3;//按鈕數目
var btn_index:Number=-1;//按鈕索引,用于標識表記標幟那時選擇的是哪個軟件,初始狀況按鈕均處于彈起狀況
init();//初始化按鈕
function init()
{
for(var i:Number=0;i<btn_count;i++)
{
this["btn"+i].onRelease=function()//添加鼠標點擊事務
{
var t:Number=Number(this._name.slice(3));//獲取點擊對象的索引值
if(btn_index!=-1)//若是索引不是-1,即有按鈕被點擊了,則要重置被點擊的按鈕
{
this._parent["btn"+btn_index].onEnterFrame=function()
{
if(this._currentframe!=1)
{
this.prevFrame();
}
else
{
this.onEnterFrame=null;
}
}
}
btn_index=t;//取得索引值
this.gotoAndPlay(2);//被點擊按鈕做出反映
}
}
}
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!