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

Reply via email to