ActionScript 2.0 :: Using OnRelease Inside A For Loop
Aug 1, 2011
I am having a hard time trying to use an onRelease event handler inside a for loop. Basically, I am developping a custom player for articulate presenter using flash and AS2.This code is generating a movie clip in a for loop for each line in the sidebar, with slide title and slide number parsed from a XML.Until here, all works fine.But when I try to generate the onRelease event handler to play the wanted slide when I click on the line, the value inside the onRelease is always the highest value of i.Looks like the onRelease evaluates i only when I click on the line, after all the clips have been generated.[code]I have to find a way to capture the value of i for each clip.
I am designing and coding a navigation menu at the moment, and so far I have got the button instances to duplicate for each of the menu items, and set widths, positioning values and RollOver/RollOut functions. However, I would ideally like to include the onRelease button functions in the for loop too - as they are all the same apart from the variable "i". Here is the code snippet:
ActionScript Code: for (i=1;i<(_root.noofmenuitems+1);i++){ duplicateMovieClip("mc", "mc"+i, i);
[code]...
Now my problem is that by the time the onRelease function is called, the for loop has been completed and the value of i returned is the last i value from the loop (_root.noofmenuitems+1). The this["mc"+i] part obviously works, because the trace function is called when I click any of the menu items.The problem is that I have 6 menu items, and when I click any of them, the trace function returns "test 7" - not the corresponding i values for each button.
I'm trying to have a bunch of buttons generated in a for loop, and I want the onRelease function defined so that each button has a unique e-mail address attached to it.As it stands now, all the buttons are being assigned the last e-mail address in the XML file. I've got more code in my actual file that creates text fields on top of the buttons, and they're displaying the correct info, so it's only the onRelease function that isn't working...Here's the abridged code:
var xmlPeopleList:XML = new XML(); xmlPeopleList.ignoreWhite = true; xmlPeopleList.onLoad = function(bSuccess:Boolean) { if (bSuccess) {
I have a loop to create clip buttons w/jpg images on face && load same jpgs into main viewer clip. Problem is, the mc buttons won't respond to onRelease.
for(i=1;i<3;++i) { var mc = "mc"+i; // button mc clip names
I am making a few drag and drop games that work great when I hard code them. When I use a FOR loop and name = eval("something"+i+"_mc") everything works great. I can assign startDrag to all MCs, I can make it stop drag, and so on. But when I try to do a hitTest, it only works for the highest value of [i] in the FOR loop. It will still assign text to all the dynamic text boxes in each MC, and do the dragging stuff, but it won't do a hitTest for anything other than the highest value.
I've searched several sites and have found things about Delegate.create, using [this.i] rather than just [i], and much more. The problem is it always partially or half works. It won't just break, it will either let both drag and only acknowledge one hitTest, or ignore the stopDrag or whatever else. Either they both partially work, or only the highest [i] value is acknowledged.
So I'm trying to have a bunch of buttons generated in a for loop, and I want the onRelease function defined so that each button has a unique e-mail address attached to it.As it stands now, all the buttons are being assigned the last e-mail address in the XML file. I've got more code in my actual file that creates text fields on top of the buttons, and they're displaying the correct info, so it's only the onRelease function that isn't working.[code]
I have another question about my For loop. I am designing and coding a navigation menu at the moment, and so far I have got the button instances to duplicate for each of the menu items, and set widths, positioning values and RollOver/RollOut functions. However, I would ideally like to include the onRelease button functions in the for loop too - as they are all the same apart from the variable "i". Here is the code snippet:
Here my attempt at creating the Kirupa's Spinning Images gallery. I'm so damn close it somewhat works, I'm still having trouble with the rotational calculations. Not sure, but I think I might be passing the wrong values from the onRelease to the enterFrame loop?
spin3a.fla var world:Array = []; var rotate = 0; var fl = 1000; var clip; function spin() { [Code] .....
I want to loop through an array of mc's, and assign each a onRelease function. I have the following code but the trace inside the function doesn't seem to find the array.I understand why but what is the correct way of doing this?
ActionScript Code: var theArray:Array = new Array(); var j:Array = new Array();[code].......
I am currently trying to make a photo gallery using flash. I have made a scrolling menu and want to incorperate it into the photo gallery, but, my photo gallery uses the onRelease function. My scrolling menu requires the movie clips to be inside another movie clip called panel. Is there a way to add the onRelease function to a movie clip INSIDE another movie clip? Here is the code for the scrolling menu:
How do I make this effect... to Drag a CD image, (about 300x300 pxls) to the right of the stage and at the same time, while dragging, making the cd to flip in position to get inside a CD drive or something? When released inside the drive, a music clip would play. If release outside, go back in initial position.
I have done this same thing in ActionScript 3, but am not familiar with ActionScript 2, which I am forced to use for this project. I am loading products into a SWF via XML and attempting to add a click event to each dynamically-created movieclip. Simply tracing the text from a node in XML will do for now. I'd like to assign a property called "desc" or "description" to each movieclip and have it trace that property's value when clicked. Here is the relevant portion of my code as it stands:
ActionScript Code: var iXML:XML = new XML(); iXML.ignoreWhite = true;
I am trying to create a gallery where each thumb is housed inside of it's own movie clip that will have more data, but it keeps failing because it won't let me refer to the newly created instance of the movie clip. Below is what I am trying to do.
var xml:XML; var xmlReq:URLRequest = new URLRequest("xml.xml"); var xmlLoader:URLLoader = new URLLoader();
I am trying to create a gallery where each thumb is housed inside of it's own movie clip that will have more data, but it keeps failing because it won't let me refer to the newly created instance of the movie clip. Below is what I am trying to do.
var xml:XML; var xmlReq:URLRequest = new URLRequest("xml.xml"); var xmlLoader:URLLoader = new URLLoader();
[Code]....
It dies every time on that last line. How do I refer to that vidThumbn instance so I can add the imageLoader? I don't know what I'm missing. It feels like it should work.
I'm trying to make a matching pairs game. First of all I'm making all the tiles, using a loop inside a loop. How do I get the ID of an item inside that loop? My code looks like follow:
Code: var matches:Array=new Array(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8); makeTiles(); function makeTiles() {
I am quite new to AS3 and I am having trouble adapting my knowledge of Java to this new language i am trying to make a simple grid in which i could work on each individual square seperately(changing their colour for example). To do so, I created a 2D array,hoping it would allow me to work with some kind of coordinates system. I initialised the array using while loops and for some reason, this does not let me access the array outside the loops.[code]The two last lines are causing the problem, instead of turning the last square red, they return the following error: TypeError: Error #1010: A term is undefined and has no properties.However, when placed inside the loop, there is no problem and the whole grid turns red.
I have put all button inside movieClip called "container" and I have added "container." inside for loop and now I am getting errors. for (i=8; i<15; i++){ container.this["button" + btns[i].name.replace("btn","")].mouseEnabled = false; }
My intention for the above simple code would be to have 'i' get traced every 3 seconds. But it doesn't. 'i' just gets dopped out into the output pane all in one go. Do steady release!
I am having an issue with a hitTestObject inside a for loop. When I drag an item it traces back that it was a hit but still animates back to its original place. I can't figure out what is going on with this... Here is my code
-: b1 = blade.. rotating and moving along y axis... its position in the stage is x = 120 and y = 20.. but when i test it tracing(_y) shows dat d first value comes 42.85 and not 20(value from the properties).. i dont know how to get its exact value just like what is seen from the properties.. i've tried to have an if statement that if the value of _y = to the y coordinate the blade position that will alter its movement, it never turns like i want.. here is my facebook email add( punisheryuri11@gmail.com ).. please help me if u have a spare time..
I am trying to load a group of thumbnails using Moviecliploader within a class function. Only the last image is loaded onto the stage. can anyone point me in the right direction, I have been wrestling with this for a couple of days. I have tried it with a single loader... loaders created in the loop, stored in an array... and loaders as a child of the dynamically created image+x clip (ie. _level0.Gallery.image1.image & _level0.Gallery.image1.mcLoader)
Actionscript Code: for (var i:Number=1; i<=3;i++){ var char_name+i = event.target.data.char_name_ + i;//It should be like//var char_name1 = event.target.data.char_name_1;//var char_name2 =