ActionScript 2.0 :: For Loop With Array And XML - Populate Dynamic Movie Clips And Text Fields
Aug 10, 2007
I have a Flash site I am developing that feeds in XML into various arrays and populates dynamic movie clips and text fields. I am having trouble making a for loop that works with my movieclips and text fields. I am probably only missing one step and if I can figure it out I will cut my lines of code about 10X. I have attached the fla and image files in a zip file.
I'm trying to populate a set of dynamic text fields with text using a for() loop and cant seem to get it to work.I have 9 seperate dynamic text boxes each labled picNum0 - picNum8. I want to read a number of pictures from an external file then have those numbers populate 1 through 9 into the text fields.I get the variables loaded in with the correct values but the text fields wont populate.[code]When I trace(curPic) inside the for(){} it outputs: picNum0 - picNum8, so I know that the variables are allocating ok, but dynamic text fields arent populating with the correct numbers.
I would like to be able to dynamically populate a dynamictext field (assuming that's the best component to use) with anarray of data from PHP.I have attached my PHP code and my Flash Code.The PHP code is working fine and generating the array.The first part of the AS code is working as I can see thepop-up window with the PHP array in it. However, I can't figure outhow to get the array to display in the dynamic text box.I have created a dynamic text box in flash with nothing inthe 'instance name' box and 'events' in the var box.
I'm working on a simple movie clip that shows a few lines of outline text. Audio will eventually accompany the text, and to make the clip more "interesting" from a viewer perspective I've been asked to fade in the text line by line as the clip progresses. I hadn't expected any trouble with this...I created the text clips individually, converted them to symbols, then applied alpha=0 at appropriate points, then inserted a motion tween to transition to the same clip with alpha = 100.
The problem I'm seeing is that when I publish the swf and open it, it just shows me all the text immediately, no fade in, no nothing. When I click Control->Play while in editing mode in Flash, the clip behaves as I'd expect. Is there some feature of text clips that prevents them from behaving as expected in this context?
After a lot of experiments and reading many articles, Q&As, I still didn't find the answers to my problem, then I decided to ask my question at great stackoverflow forum:-)
The setup of my project is as follows:
- Create an AS3 project in Flash Builder 4 (Main.as3proj), and write source code in it; - Create graphical assets in Flash CS5; - Load the graphical assets in the AS3 project;
In the graphical assets (swfs), there are text fields, we would like to use Embedded fonts for the text fields. But we don't want to embed the fonts in all swfs, we want to create a swf as a font library (FontLib.swf), that embed all the fonts needed across all the graphical assets (swfs).
After loading or embedding the FontLib.swf to the main application (Main.swf), the embedded fonts is availabe: TextField.isFontCompatible(myFontName, myFont)
is true. And when I create a TextField with the embedded font at runtime, it works fine. But besides this, I want to use the embedded fonts for the TextFields in other graphical assets like what I described at the begging, but when I try to change the text for the dynamic text field in a movie clip, the text field will disappear. (Before changing the text, it can be displayed because Flash CS5 automatically embed the fonts for the characters already input in the fla/swf file).
I tried to clone the text field with the same properties of the text field in the movie clip and replaced the old one, as I said, this works as other text fields created at run time. But I have other problem with cloning and replacing the text fields in movie clip. I wonder if there is a way to instruct the flash player to use the externally loaded embedded fonts for the text fields in movie clip.
I have five individual movie clips that dynamically load names from five variables in a txt file (these all fade in and out and overlap the transition of the next). Every time the movie loops, I'd like the movie clips to display the next item in the list until every name has been listed - is this doable? Is there a better way to do this from within flash instead of loading the content dynamically?
I am trying to figure out how to dynamically populate textfields in Flash. The text in the fields will either say ON or OFF based on the value of bstatus.var bstatus will either have a value of 0 or 1 I have the following textfields listed below.I'm not sure if the syntax is correct, but I was thinking that the text fields would be in an array, and I would create a for loop--that will go through the array in order to have the fields populated.
var textFields:Array = new Array(); textFields[0] = compTxt.text; textFields[1] = bathLightTxt.text;
Despite adding: source="myScript.as" (that basically feeds the main.mxml file)
to my TitleWindow component MXML file (which I instantiate from the main.mxml file) the variables defined in myScript.as appear to be null hence I can't populate my text fields in the title window, even though those variables work fine in the main.mxml.
I'd like to gather (at run-time) all dynamic text fields on the stage and push them into an array. Then I can load an xml of data and populate each dynamic text field in the array with a matching value in the xml file.
So basically I'm writing one class file I'd like to be used on many different swf files, each of which can have one or 20+ dynamic text fields. I'd like the swf to loop through each text dynamic field, throw each into an array and then grab an xml item with a matching name as that text field and set its textfield.text value from it. So actually if the dynamic text fields are just in a for loop then I guess I wouldn't even need to place them in an array, just not sure how to identify the dynamic text fields on the stage.
I'm trying to update two dynamic text fields from two arrays on mouseclick. I want the flelds to show a different array element once the mouse is clicked. [code]...
I am trying to loop through an array of 5 movie clips using a timer. Below is the script that plays the first movie clip, then plays the next clip over and over.
var timer:Timer = new Timer(2000); timer.addEventListener(TimerEvent.TIMER, onTimer); timer.start();
I have a simple array of movie clips ("box1" "box6") that I have created on the stage. I then have a simple onRollOver function that is iterated for each of these movie clips, as shown below. As it is now it's working fine, but I can forsee two potential problems for when I use larger arrays and apply this technique to my real working files.
If I were to have many more movie clips, the first line of code would be much longer as it lists each movie clip instance name. Is there a way to use, for example, a for loop to include all these movie clips in the array without having to type out all their names? As you can see here, I have used a simple numerically-incremented naming process. I think the problem may be that I am using movie clips with instance names assigned on the stage and not created through ActionScript.The function as I have created it makes all the movie clips gotoAndStop(1) and then the one that has been rolled over goes to frame 2. Is there a way of making all the movie clips in the array except the one that has been rolled over gotoAndStop(1), ie. is it possible to exclude the rolled-over movie clip from the first part of the function? Here it works just fine as it is, but I'm thinking that maybe when I start using more complex functions with tweens etc it may cause problems. Or not?
I have been making a memory game, where words are shown to the user. Once they have memorised the words they go to the next screen where the words that they have memorised are shown. They then have to drag each word into a "correct" place and a "wrong" place. I now want to edit it so that I can use two arrays one for correct words and one for wrong words. I want to generate random words from each of these arrays. I have sort of worked out how this is possible to do but using dynamic text, but am I correct in thinking that the whole dragging the words thing is not possible with dynamic text. (I may be wrong though, I am quite new to flash).
I am working on the news ticker module (AS2) where I have to fetch news from xml and populate that news headings into four text fields and these 4 headings will stay for a while and fade until last record. this process will continue.
I have a MS Access query ProductDetailsAll that is queried using an ASP.net web service. The service simply fills a data table with query results. How do I setup and pass parameters from Flash? I need to sear ProductDetailsAll for records having CategoryID 1 or 3 based on user selection. How is the CategoryID passed from Flash to the web service?
I have created rectangle objects in Flash. Each one must contain product name, description, price and the image from the ProductDetailsAll query. How do I pass the search phrase from Flash to the query? Do I use dynamic text boxes to house the returned values?
I am using a gallery written in AS3.0 called SlicedCubeGallery. It used Flex to publish the gallery.I can edit the functions for the SlicedCubeGallery, and the one I am targeting is the one that swaps the images (which I have running on a timer).I am loading the whole gallery SWF onto my stage using this code:
var request:URLRequest = new URLRequest("slicedCubeGallery.swf"); cubeGallery_mc.load(request); addChild(cubeGallery_mc);
I have a detailed results page to which I want to post all the questions, answers, and whether the user answered correctly or incorrectly. All this information is stored in a multidimensional array and its successfully showing the results via the trace method.
My question is, what is the syntax for populating a dynamic text field with these results? Do I just write out one long line of AS with the newline command to separate the data? How would I go about applying bold to certain parts of the stored data that I will be showing?
Here is current code for my detailed results page:
function showResults(){ trace("Now showing results"); for(var i:Number = 0; i < NumberOfChallenges; i++){ //This calls the length of the original array (not the spliced copy)
I can't get the code to "know" which of the dynamic thumbnails has been clicked (by "know", I mean return an index value, say 0 through 7 if there are 8 projects, that I can use to access that particular project in the array of 8 projects in the rest of the code)... So if the third movieclip thumbnail were clicked, I'd like "2" to come up somehow... I've tried this code, which is kind of lame, I know, based off of the idea of each of the thumbnail movieclips' names ending in their index number:
Code: //"this" is the button that was pressed; would return a string ending in //thumberMC_<number of whichever movieclip thumb was clicked> var: testString:String = this;
[code]....
Lastly, there's a dynamic textfield I'm trying to create that never shows up for some reason. Again, you could see in the FLA (in the "createDrawer" function around line 424).
I'm loading 6 variables from a text file to populate an array, then using setInterval to populate two textfields every 5 seconds. IE7 gives me the "A script in this file is causing Flash Player 10 to run slowly do you want to abort this script?" It runs fine locally, but when I upload it, it won't work. Files are in the same folder in each case. Here is the entire script.
I want to generate a mc for each rep with 6 text fields containg the 6 values for eash rep.So for this xml there would be 3 mc's with 6 text fields in each. This is one of my first times really diving in to xml parsing in Flash.
Alright so lets say I have a number of movieclips or text fields or something with instance names test1, test2, test3 and so forth. Now say I want to fill these text fields with text that I have in an array and I want to do this with a loop, how do I do this? What I'm really asking is if there is a way to use a variable in an instance name if you catch my drift.
Basically I want to get the text fields in my Flash translated. To achieve this, I have the translations in a XML file and all text fields are dynamic. I read the XML (dependent on a language calling parameter from the HTML) and set the text fields like:
this["text_1"].text = "Hello";
The "text_1" and "Hello" are of course retrieved from the XML and I use variables in my code.
Now to the problem: I can successfully set the text field, that is visible in the Frame 1 (where my script is executed), but setting text fields that appear later give me an error. Translated it means something like Null Pointer not accessible. So I assume, that the this["text_x"] can not be found.
Is there a way to access it without copying the script into each text element? I have also thought about events, e.g. when the text is shown the first time and I do the translation then (would have to cache the XML at startup then to save time), but didn't find anything.
I've got a nice bit of code that allows me to dynamically add a dynamic text box to the stage, add text to it and control it's position and formatting:
var txt:TextField = new TextField();txt.text= "feisty";txt.x=50;txt.y=50;var format:TextFormat = new TextFormat();format.color = 0x2F55EA;format.font = "Arial";format.size = 18;txt.setTextFormat(format);stage.addChild(txt);
This just makes the word "feisty" appear on the movie.The problem is that I want to create many words with different positions,different starting times, make them go away and then have different words appear. It would look like this:[URL]The swf at the link was created with After Effects and the file size is 1.5 MB - too big for a web banner. I was told I could recreate the whole thing dynamically with actionscript and get file size way down. I've been working through various tutorials with little luck.
I have a list of 100 words, how do I turn the code above into a cloud of words that appear one or two at a time? I assume I will put the words into an array, but then how do I get the code above to cycle through the array and pick up the position and format attributes?
I am resizing a movie clips height automatically to match the height of some dynamic text that is displayed above it (will eventually be loading it from xml ). is there a way to keep a safe margin top and bottom? this is my code so far Text_Box_Graphic.height = Text_Box.height;
I am wondering how do we determine when a user "starts" entering text into a dynamic text field. Say a person has entered the wrong information and they get an error. I would like to be able to remove that error message as soon as the person selects the input fields again.
I'm trying to make this guessing game where you have to guess how many times a penguin will bounce off the water surface before it sinks The way I'm planning to do it is kind of like this:
1.[Script telling textbox to add +1] >> 2.[Bounce animation] >> 3.[Script that randomly sends you to point 1, or 4] >> 4.[Ending animation]
Yeah, and right now I'm desperately trying to get that dynamic text field to work ...I've made a button with this code:
(The textbox is called "test") on (release) { test ++; }
And on the first frame of the timeline I've added this:
What I'm doing is that I want to create textfields using flash and insert them into my HTML portfolio site.The reason I'm doing this is to be able to use special fonts, kern the text properly and customize the anti-aliasing. I tried with CSS but I don't have enough control using that (regarding kerning and anti-aliasing).I have created a Flash file that can load specific .txt files into the textfield of the SWF (so that the text becomes formatted), using FlashVars. I discovered that kerning in Flash doesn't apply to dynamic textfields unless you set it using actionscript. So I've tried to use the following code on my textfield:
--- var myFormat:TextFormat = new TextFormat(); myFormat.letterSpacing = 3;
I'm populating dynamic text fields within (timeline) animated movieclips. For some reason, this only works with the first movieclip even though the rest are formatted identically. I'm getting no errors.I can load other nodes into this MC so I think the XML and the code targeting the nodes seems fine (tracing the node values works as well).
The problem seems to be with the target movieclips, however I cannot find any differences in their settings compared to the one that is working. AS and XML below:
Code: function loadXML(loaded) { if (loaded) { var format1:TextFormat = new TextFormat(); format1.letterSpacing = -4;
[code]....
I have attached the FLA and XML for reference, version CS4.
The code is coming up with [Text Object] instead of what the text actually is (and if I actually add .text it calls up absolutely nothing). This functions perfectly well when using the standard array without the sub-properties and {} brackets (so I think the problem might be somewhere in the push statements). I am not understanding what the error is (probably something blatantly simple, my only guess being some sort of conversion problem).