Thank you Cor!
The buttons are MCs placed on the stage. At first they were Buttons,
but when they wouldn't change even the states within the Button, so I
converted them to MCs.
Also, what does the
, false, 0, true);
do? Does it have to do with removing the listener?
uhg im not going to sleep well tonight.
Being that this is a clients FLA, I am not able to email my FLA.
Will try your suggestions and let you know. Thank you!
Best,
Karl
On Oct 24, 2012, at 10:51 AM, Cor wrote:
Hi Karl,
Hahahaha, AS3 is very much easier then AS2.
But can be a little tricky to grasp when you are switching.
Believe me, once you see the structure, you don't understand that
AS2 has ever existed.
First the Q: How do you use a button instead of a MC.
There is no difference, they are both Objects with each some specific
properties.
The button is in fact a movieclip with just a timeline of 4 states.
I recommend never to use Flash Components(!).
Create youre own button or movieclip.
When you create a graphic and transform (F8) it into a Symbol you
can choose to
set it as a MC or Button.
I prefer MC always and write my own class to deal with the states.
I will send you some examples in a following mail.
In this mail I will address your code problem as is.
I always look at code to see if something is redundant.
So if there is ANYTHING I discover is present more then once, I
create something
so there is only 1 of it, and reuse that as often as needed.
In your case I can't see if the buttons are put on stage phisically
or with
code.
I always use code only, my stage stays empty and I have no frames on
the
timeline!
My guess is that in this case the buttons are already on the stage,
so I will
set the code as follows:
//put all the button names in this array
var aButtons:Array = [ button1_btn, button2_btn];
var idx:int = -1; //no button selected yet
for (var i:uint = 0; i < aButtons.length; ++i){
aButtons[i].buttonMode = true;
aButtons[i]..mouseChildren = false;
aButtons[i].addEventListener(MouseEvent.CLICK, btnClickHandler,
false, 0,
true);
aButtons[i].addEventListener(MouseEvent.ROLL_OVER, btnOverHandler,
false, 0,
true);
aButtons[i].addEventListener(MouseEvent.ROLL_OUT, btnOutHandler,
false, 0,
true);
}
function btnClickHandler(e:MouseEvent):void{
//get the position in the array of the clicked button
idx = aButtons.indexof(e.target);
switch (idx) {
case 0:
this.gotoAndStop("divinedivers"); //goto frame divinedivers in this
MC
break;
case 1:
this.gotoAndStop("scubadudes"); //got frame scubadudes in this MC
break;
}
}
function btnOverHandler(e:MouseEvent):void {
//get the position in the array of the clicked button
idx = aButtons.indexof(e.target);
//RENAME THE FRAME TO 'over' !!
aButtons[idx].gotoAndStop("over"); //toggle this button MC frame
}
function btnOutHandler(e:MouseEvent):void {
//get the position in the array of the clicked button
idx = aButtons.indexof(e.target);
//RENAME THE FRAME TO 'out' !!
aButtons[idx].gotoAndStop("out"); //toggle this button MC frame
}
I typed this instantly in this mail, so watch for a possible typo?
I go to dinner now, and create and send the promised examples after
that.
If you have problems with the code above, please tell me.
For simplicity, I suggest mailing a FLA to eachother.
regards
Cor
---- Karl DeSaulniers <k...@designdrumm.com> schreef:
Hello All,
Long time. If your available at the moment, I could use your help with
some AS3.
I finally got an AS3 job! Yay! But I am stuck on the most simple of
things.
All I am trying to do is make some buttons work... lol
Here is my code.
button1_btn.buttonMode = true;
button2_btn.buttonMode = true;
button1_btn.useHandCursor = true;
button2_btn.useHandCursor = true;
button1_btn.mouseChildren = false;
button2_btn.mouseChildren = false;
button1_btn.addEventListener(MouseEvent.CLICK, function()
{ changeSelect(1); });
button2_btn.addEventListener(MouseEvent.CLICK, function()
{ changeSelect(2); });
button1_btn.addEventListener(MouseEvent.ROLL_OVER, function()
{ toggleB1(2); });
button2_btn.addEventListener(MouseEvent.ROLL_OVER, function()
{ toggleB2(2); });
button1_btn.addEventListener(MouseEvent.ROLL_OUT, function()
{ toggleB1(1); });
button2_btn.addEventListener(MouseEvent.ROLL_OUT, function()
{ toggleB2(1); });
function changeSelect(p):void {
switch (p) {
case 1:
this.gotoAndStop("divinedivers"); //goto frame
divinedivers in this
MC
break;
case 2:
this.gotoAndStop("scubadudes"); //got frame scubadudes
in this MC
break;
}
}
function toggleB1(f):void {
button1_btn.gotoAndStop(f); //toggle this button MC frame
}
function toggleB2(f):void {
button2_btn.gotoAndStop(f); //toggle this button MC frame
}
Why does AS3 have to make things so difficult for something so
simple??
What the heck am I doing wrong???
Also, how do you use just a button instead of a mc?
I tried using just a button and it wouldn't even switch to the over
state that is inside the button!!?
AS2 is just so much more simple... sigh*
TIA,
Karl DeSaulniers
Design Drumm
http://designdrumm.com
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Karl DeSaulniers
Design Drumm
http://designdrumm.com
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders