Hey Karl.
The issue you are facing is that the function on the comboListen object
(comboListen.change) steals your scope - so you don't have any access to
all the things you need: "picturesArry", "thumbHolder" etc.
So, you can either, forget creating an object to handle events and just
put your "change" function right there:
function change(evt_obj:Object) {
var selectNum:Number = colorBox.selectedIndex;
if (selectNum <= 1) {
var pic = picturesArry[thumbHolder.ID][0];
thumbHolder["picture_box"].loadMovie(pic, 0);
thumbHolder.LoadVars(pic);
} else {
var pic = picturesArry[thumbHolder.ID][selectNum];
thumbHolder["picture_box"].loadMovie(pic, 0);
thumbHolder.LoadVars(pic);
}
}
colorBox.addEventListener("change", this);
Or, use the Delegate class to set the correct scope:
import mx.utils.Delegate;
var comboListen = new Object();
comboListen.change = Delegate.create(this, "onChange");
function onChange() {
var selectNum:Number = colorBox.selectedIndex;
if (selectNum <= 1) {
var pic = picturesArry[thumbHolder.ID][0];
thumbHolder["picture_box"].loadMovie(pic,0);
thumbHolder.LoadVars(pic);
} else {
var pic = picturesArry[thumbHolder.ID][selectNum];
thumbHolder["picture_box"].loadMovie(pic,0);
thumbHolder.LoadVars(pic);
}
}
colorBox.addEventListener("change", comboListen);
Barry.
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Karl
DeSaulniers
Sent: Thursday, 19 November 2009 2:28 p.m.
To: Flash Coders List
Subject: Re: [Flashcoders] ComboBox troubles
Oh and this is an AS2 project too.
Karl
Sent from losPhone
On Nov 18, 2009, at 7:22 PM, Karl DeSaulniers <[email protected]>
wrote:
> Hello List,
> Have a little snag on my hands. I am trying to get the value of a
> selected comboBox to change the picture of another MC.
>
> My code:
> var comboListen = new Object();
> comboListen.change = function(evt_obj:Object) {
> trace(evt_obj.selectedIndex);
> var selectNum:Number = evt_obj.selectedIndex;
> if (selectNum <= 1) {
> var pic = picturesArry[thumbHolder.ID][0];
> thumbHolder["picture_box"].loadMovie(pic,0);
> thumbHolder.LoadVars(pic);
> } else {
> var pic = picturesArry[thumbHolder.ID][selectNum];
> thumbHolder["picture_box"].loadMovie(pic,0);
> thumbHolder.LoadVars(pic);
> }
> };
> colorBox.addEventListener("change",comboListen);
>
> thumbHolder = main MC that holds the picture and the comboBox
> ["picture_box"] = the picture MC inside thumbHolder that I want to
> load into.
> colorBox = the comboBox inside thumbHolder that I want to change
> the picture MCs contents with.
>
> FYI, by the time I get to using the listener, ["picture_box"] has
> already been loaded with the first image in the array of pictures.
> thumbHolder, colorBox and ["picture_box"] are dynamically loaded
> onto the stage at run time.
>
> How do I get colorBox's selection to change the picture in
> thumbHolder["picture_box"]?
>
> Any help would be greatly appreciated at this point. this is my
> third day with this and I'm going crazy.
> Is there something I need to import to control the comboBox?
>
> I have
> import mx.control.ComboBox;
> already imported, do I need it?
>
> Karl DeSaulniers
> Design Drumm
> http://designdrumm.com
>
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders