Agreed! 2009/5/24 Steven Sacks <flash...@stevensacks.net>
> The latter is cleaner and better, IMO. > > Write a function that your event handler calls. Then, you can call it from > elsewhere and from your button click handler. > > function onThumbClick(event:MouseEvent):void > { > loadImage(event.target.name); > } > function loadImage(num:int):void > { > // loadImage(num); > > } > > Juan Pablo Califano wrote: > >> You have a couple of options: >> >> You could add an optional parameter to the function that handles the >> click, >> like this: >> >> function clickThumb(e:MouseEvent,index:int = 0):void{ >> >> } >> >> Setting a default value for the index parameter allows the function to be >> called without passing it. That's what will happen when a thumb is >> clicked. >> >> When you want to call the function directly, you'd do: >> >> clickThumb(null,image_num + 1); >> >> In clickThumb, check whether the event object is null or not. If it's not, >> do what you're currently doing. If it's null, use the index parameter as >> the >> index into my_images. >> >> >> Another thing you could do is a bit of refactoring. >> >> Have the click handler only resolve the index and calling another function >> to actually load the image. >> >> function clickThumb(e:MouseEvent):void { >> loadImage(e.target.name); >> } >> >> function loadImage(index:int):void { >> if (my_full_images[index] == undefined){ >> var full_url = my_images[inde...@full; >> ... etc ... >> } >> >> Then, from your other button's handler, call loadImage(image_num + 1); >> >> >> Cheers >> Juan Pablo Califano >> >> 2009/5/23 Isaac Alves <isaacal...@gmail.com> >> >> Hello! >>> In my code there's a function that shows an image on the screen (or load >>> the >>> image and show a progress bar) that is called by clicking on a thumbnail, >>> and uses a parameter [e.target.name] refering to the property "name" of >>> the >>> thumbnail clicked, which is an integer. The thumbnails are placed inside >>> the >>> cointaner_mc MovieClip. >>> >>> container_mc.addEventListener(MouseEvent.CLICK, clickThumb); >>> >>> function clickThumb(e:MouseEvent):void{ >>> if (my_full_images[e.target.name] == undefined){ >>> var full_url = my_images[e.target.nam...@full; >>> >>> etc... >>> >>> but I want to call this function by clicking on a button, which would >>> need >>> to pass another type of parameter, in this case, a variable which refers >>> to >>> the number of the image displayed on the screen plus one. >>> >>> I tried this: >>> >>> clickThumb(image_num + 1) >>> >>> But it doesn't work, I get the following error: >>> >>> 1067: Implicit coercion of a value of type Number to an unrelated type >>> flash.events:MouseEvent. >>> >>> How could I call the function clickThumb and make it use "image_num + 1" >>> instead of "e.target.name" ? >>> >>> Could I dispatch the event (MouseEvent.CLICK, clickThumb), passing this >>> value "image_num + 1" ? >>> >>> Thanks in advance !! >>> Isaac >>> _______________________________________________ >>> Flashcoders mailing list >>> Flashcoders@chattyfig.figleaf.com >>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>> >>> _______________________________________________ >> Flashcoders mailing list >> Flashcoders@chattyfig.figleaf.com >> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >> >> _______________________________________________ > Flashcoders mailing list > Flashcoders@chattyfig.figleaf.com > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > _______________________________________________ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders