推 angelpoan:可以提供給我嗎? 01/30 23:14
※ 引述《clas (克雷斯)》之銘言:
: 請問怎麼樣做才可以在按下按鈕後讓按鈕停留在按下的狀態
: 然後再按一下 可以回復為原始未按下的狀態
: 我想破頭了
: 請教各位先進 感謝~~
以下是純AS3的作法:
雖然有人說flash的按鈕不好用(意即SimpleButton Class),
但其實如果要很快開發介面用的工具,其實也不錯用。
以下是一個簡單的OnOffButton Class,剛好滿足clas的需求:
package{
import flash.display.SimpleButton;
import flash.display.Loader;
import flash.events.MouseEvent;
public class OnOffButton extends SimpleButton{
private var onOffIndex:Boolean
//ON狀態按鈕
private var normalLoader:Loader;
private var overLoader:Loader;
private var downLoader:Loader;
//OFF狀態按鈕
private var normalLoaderOff:Loader;
private var overLoaderOff:Loader;
private var downLoaderOff:Loader;
public function OnOffButton(onOff:Boolean){
onOffIndex=onOff;
normalLoader=new Loader(new URLRequest("ON 平常狀態圖檔");
overLoader=new Loader(new URLRequest("ON 滑鼠移入狀態圖檔");
downLoader=new Loader(new URLRequest("ON 滑鼠按下狀太圖檔");
normalLoader=new Loader(new URLRequest("OFF 平常狀態圖檔");
overLoader=new Loader(new URLRequest("OFF 滑鼠移入狀態圖檔");
downLoader=new Loader(new URLRequest("OFF 滑鼠按下狀太圖檔");
switchOnOff(onOffIndex);
this.addEventListener(MouseEvent.Click, mouseClickHandler);
}
public function switchOnOff(onOff:Boolean):void {
if (onOff == true) {
this.hitTestState = normalLoader; //設定感應區域
this.upState = normalLoader;
this.overState = overLoader;
this.downState = downLoader;
}else {
this.hitTestState = normalLoaderOff; //設定感應區域
this.upState = normalLoaderOff;
this.overState = overLoaderOff;
this.downState = downLoaderOff;
}
}
private function mouseClickHandler(e:MouseEvent):void{
onOffIndex=!onOffIndex;
switchOnOff(onOffIndex);
}
}
}
使用上只要宣告var onOffButton:OnOffButton=new OnOffButton(true); //初始為ON
就可以用On / Off button了:>
(我自己會加上一些初始屬性,如這個按鈕會不會有over或down的狀態)
(有興趣可跟我要AS檔)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.231.79