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


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


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"
是不是我有些該定義的沒有定義呢?
不好意思問些愚蠢問題,希望您能夠解答!
謝謝