我的舞台上有7个按钮(buttonA,buttonB等),所有MC都是。 我想控制RollOver,RollOut&点击AS3。
起初我以为我可以告诉我的按钮听众在哪里
即。 gotoAndStop(2)是RollOver状态。 或gotoAndStop(3)是Click状态。 和gotoAndStop(1)这是RollOut状态。
但是当我“点击”然后推出时,我需要按住按钮才能“点击”直到其他按钮被“点击”。
似乎无法弄清楚这一点。任何帮助将不胜感激。
答案 0 :(得分:1)
// loop through the buttons and give them mouse click listeners
for ( var i:int = 1 ; i <= 7; i++ ){
var curButton:MovieClip = getChildByName ("button"+i);
// set click lisitener
curButton.addEventListener ( MouseEvent.CLICK, buttonClickHandler );
// set rollover listener
curButton.addEventListener ( MouseEvent.ROLLOVER, buttonRollOverHandler );
// set rollout listener
curButton.addEventListener ( MouseEvent.ROLLOUT, buttonRollOutHandler );
// set initial state
curButton.gotoAndStop(1);
}
function resetStates (){
for ( var i = 1; i<=7; i++){
var curButton = getChildByName("button"+i);
curButton.gotoAndStop(1);
}
}
function buttonRollOverHandler ( evt:MouseEvent ){
resetStates();
evt.target.gotoAndStop(2);
}
function buttonRollOutHandler ( evt:MouseEvent ){
resetStates();
}
function buttonClickHandler ( evt:MouseEvent ){
resetStates ();
evt.target.gotoAndStop(3);
}
答案 1 :(得分:0)
嗯...
我会保持翻转并按下按钮元素范围内的功能,并为永久点击状态执行第二帧。
[这是快速编写的代码,但你会得到这个想法]
您似乎需要为每个按钮设置一些父“重置”功能和单独的点击处理程序。
buttonA.addEventListener(MouseEvent.MOUSE_DOWN, buttonADown);
function resetButtons(){
buttonA.gotoAndStop(1);
buttonB.gotoAndStop(1);
buttonC.gotoAndStop(1);
buttonD.gotoAndStop(1);
buttonE.gotoAndStop(1);
buttonF.gotoAndStop(1);
buttonG.gotoAndStop(1);
}
function buttonADown(e.Mouse_Event):void{
resetButtons(); //RESET ALL PREVIOUSLY CLICKED BUTTONS
buttonA.gotoAndStop(2);
}
// and so on down the line....