跳到主要內容

選單Focus設計

在設計選單時
經常會需要將點選的單元Focus效果
當再點選新單元時, 上一個menu會自動退回一般的樣式,
原理其實只需要多用一個變數, 來記住上一個的menu是誰,
當點選新的menu時,就先叫上一個menu退回去
然後新menu再被存進新的變數即可。

Thumbnail - Click me


package  {  
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;

public class Demo extends MovieClip {  

private var _container :Sprite = new Sprite();
private var _txt  :TextField = new TextField();
private var _prevItem :ItemMC = null;
//建立一個變數用來記住上一個的選單。
public function Demo()  { 
_container.x = 100;
_container.y = 100;   
this.addChild(_container);
this.addChild(_txt);
for (var i:int = 0; i < 4; i++) {
var _item:ItemMC = new ItemMC();
_item.gotoAndStop(i + 1);
_item.x = 130 * i;
_item.name = "item" + i;
_container.addChild(_item);
_item.addEventListener(MouseEvent.CLICK , itemClickHandler);
}
}  

private function itemClickHandler(e:MouseEvent):void {
var _item:ItemMC = e.currentTarget as ItemMC;
//得到廣播者
if (_item == _prevItem) return;      
//如果按下的物件和上一個物件是同一個,就中斷後方的程式碼。

if (_prevItem != null)  _prevItem.setFocus(false);   
//如果上一個物件不是空值,就讓物件回覆一般樣式。

_item.setFocus(true);      
_prevItem = _item;
//將現在的物件記住在變數里。
_txt.text = _prevItem.name + ":MouseClick";
}
} 
}
AS2_AS3_SourceCodeDownload

留言

匿名表示…
奶綠老師您好:

我最近在研究這種效果的FLASH,
主要是研究AS3,
可是我發現我每次跑都會出現
"找不到定義gs.easing:Cubic
找不到定義gs.TweenMAx"
是不是我有些該定義的沒有定義呢?

不好意思問些愚蠢問題,希望您能夠解答!
謝謝
milkmidi寫道…
因為你要下載TweenMax的類別才行喔