看板 Flash 關於我們 聯絡資訊
※ 引述《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
angelpoan:可以提供給我嗎? 01/30 23:14