作者DLMC (永保安康)
看板Flash
标题Re: [问题] 按下按钮後 让按钮停留在按下的状况
时间Sat Jan 30 00:06:48 2010
※ 引述《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
1F:推 angelpoan:可以提供给我吗? 01/30 23:14