ActionScript 3.0 :: A Class Adding Itself To Display List?
Dec 14, 2009
What i'm trying to do is create an errorAlert class. The role of this class is to as you might expect display an alert:) So the current class is set up in such a way.
1. pass in an errorcode returned from the server into the constructor.
2. This runs through a switch and sets a msg variable to the right textual prompt based on the code. At this stage it also sets an alert type, so as an example it could be a severe alert where the user has no option other than ot refresh the browser. Or it is a softer alert where the user is able to press a close button and proceed.
Because all of the type handling and everything is held within the class. I want to avoid adding the instance to the display list within the main document class. Ideally just letting the class add itself to the stage AND IF it is a softer alert, it can show the close button, add an event listener, and, then remove itself.
I load an png image and add it to the display list. Now I want to add this image more than once, like a pinball game there could be 3,4,5 balls, all with the same image. But I cant add the same image reference more than once to the display list, right? So should I make a copy of it? How can I copy it and add to the display list without needing to load it from file more than once?
I have a single image I imported to the library of an Fla document. I could have easily imported it to the stage, but I chose the library instead. It is a .png file. It's name is ace_clubs.png. On import a symbol was created by Flash and I deleted it. THE ONLY THING IN THE LIBRARY IS ace_clubs.png . I then right clicked on the the image and filled in for properties the following:
1. Export for ActionScript
2. Export in Frame 1
3. The class was by default named ace_clubs.png which I renamed to my_images .
4. The base class by auto default is flash.display.BitmapData
So how do you get the image (ace_clubs.png) to display in the Flash movie at say (0,0) ? Meaning in the ActionScript window what code is needed?
I have an embedded image asset (with a scale9 grid), and I'm trying to get the bitmapdata when it's resized, but I can't seem to do this without adding it to the display list.
why I cant kill a child in my display list. So I'm working on an ad that is going to load in different swfs depending on the link you click. What I wanted to happen is when the ad loads the first swf is auto loaded in to my container. Then when you click on the next link the new swf would cancel out the last one. What I am getting is an overlap of the swfs and I understand that. I can't figure out how to kill the other children. I tried unload and remove child but have been unsuccessful.
I'm trying to add the btns in array "but" via stageMc.addChild(section1), but instead of tracing "section1" I get "instance1", and of course stageMc wont advance. I guess what I'm asking, is whats the diff. from a functional standpoint if I embed the clips in flash, or embed them into the stageMc clip via the display list? what am I missing? FYI, this code works, so long as i place the assets on stage myself. But I want to add the btns via the display list, and i can add them, they just instanciate wrong?
I'd like to remove a child of the display list if it exists before adding another to the stage. This gives me Error the first time I call it because 'myMC' doesn't exist.
HTML Code: function callMc(){ if(myMc) removeChild(myMc);
var t:TextField = new TextField(); t.text = "hello in main"; addChild(t);
However, when I create an instance of a class, and I have that same code in the constructor of that class, the text doesn't show up. I am creating the text field variable at the class level, not the contstructor level, so I think the variable should still hang around.
Do I have to get an instance of the stage, or something?
I have very simple code for a class: package {import flash.text.TextField; import flash.display.Sprite; public class Greeter extends Sprite { public function Greeter(){var txtHello:TextField = new TextField(); txtHello.text = "Hello World"; trace("hi"); addChild(txtHello);}}}
The above file is saved as Greeter.as in say folder C: est I then create a Fla file named test_display.fla (saved in C: est) and its contents are: import Greeter;var tt:Greeter = new Greeter(); Now the Output window shows hi due to the trace statement but the addChild method should show World in the Flash movie but it does not. The only way to get Hello World to the Flash Movie is to change the test_display.fla to:
import Greeter;var tt:Greeter = new Greeter(); addChild(tt);
In other words I have to use the addChild method twice ( once in Greeter.as and once in test_display.fla ) to get Hello World to display in the Flash movie. Does anyone know why this is so?
I am trying to pass the display list name that is inside the trace statement back out of this class. Essentially I what I want, is that when someone clicks on the "Button_mc" movie clip, I want to pass the instance name back to a different class I've been trying to figure this out all day with no luck and I was wondering if someone would be willing to give me a hint.
package { import flash.display.*; import flash.events.*; public class button_mc extends MovieClip public var current_button_name:String;
Now how is it that I can add the variable SPRITE which is a Sprite in the OBJECT_square class to the display list of MAIN class? I've tried addChild(SPRITE) and super.addChild(SPRITE). If everything works I should see a red square somewhere on the screen but right now its all blank, except for the text drawn in the MAIN class.
Basically I want it so i can just make a new OBJECT_square and it will draw itself without any more instructions from the MAIN class.
I want to add a SimpleButton to a list item in a list component. I am getting the CellRenderer for the list item I want and using the addChild method to add the simple button. The button appears in the right spot on the list item but it doesn't function like a button. It's like the contents of the buttons first frame is added to the CellRenderer and nothing else.
I have a list containing display objects from throughout the application (insertion order). I want to process the list either top-down (parent, child) or bottom up (child, parent). The only requirement is that either a parent is processed before any child or vice versa a child before its parent. What is a good approach? This question is not about sorting a list. It's about retrieving the depth of a particular display object.
Example Display list: A (root) B1 C1 C2 D1 B2 ......
My list: list = [E1, F4, A, B2, B1, C3, ..., N9, N8]
Bottom-up: N9, N8, F4, E1, C3, B2, B1, A
Top-down: A, B2, B1, C3, E1, F4, N9, N8 Does not matter if N9 before N8 or N8 before N9. Important is that any N is before M (first run) or any M before its children N* (second run).
How do I identify all the display objects in the display list in ActionScript, bellow the one that I have clicked? All the other objects are shadowed by the first one. What if other objects have visible parameter as hidden?
This is my first time working with a class attached to a movieclip that is nested inside a class attached to a movie clip.I've tested all the properties and methods of PTListItem.as and they work properly but when I try to call them on the list item through PTListTop.as it returns undefined.The end goal is to dynamically load a checklist via a txt file.
It's my understanding that a display object cannot be in the display list more that once.So if I add something to the stage shouldn't a second addition of the same object replace the first? for instance:
[code]...
there should now only be one "myDisplayObject" on the stage.
i am using: ActionScript Code: vidList.addItem({Label: " first path showing ", data: "../myflash/vid/path1.flv"}); The list and buttons work, the videos play - however my labels are not showing on the buttons even though i have added a label to each video as shown above...
I tried to add some thumbnails attributes to list component,i was using the xml vidlist however i was unsuccesfull.i thought just adding another attribute would work but it didnt .am i suppose to make an image holder i am sorta lost at this point
I have a list of flvs that are selectable with buttons and I would like to add cue points to the individual videos to trigger other events and I'm afraid my skills are lacking here.How do I target an flv in a list to add cue points and how do I target these cue points to trigger movie clips?
when I add items nothing appears in the component but when I make a second adding cycle List shows the one I added previously...The code with which I add my elements is this.The studied method is updateStorages(), the rest is to understand how's the process cycle.All the trace you see in the code works with no problem.
ActionScript Code: public function Scopa() //constructor { [...]
I'm having alot of trouble tracking down the name of an object on the display list so i can removeChild Is there a way to trace every object on the display list so i can get its name and remove it? my stage is changing dynmically and i can't jut trace each object through a whole whack of code.
I have a list box in my flash file that I would like to display a string from an xml file that has been run though html entities in php. So for instance I need the string.
Code: Hey "Leonardo£$£$()*%£% '"' [1999] to display as Code: Hey "Leonardo;$;$()*%$% '"' [1999]
I can get this to happen in my dynamic text boxes by using .htmlText to display but I have no idea how I would do this in the list box?
All it returns is 0 and [object MainTimeline]. Is there something wrong with Flash, or did I do my coding wrong? The objects I put on the stage should be on the Display List, right?
How do I removeChild only if it's in the Display List?One button on my stage will addChild(radioButton) and another removes it. If the remove button is clicked first, then it obviously tries to remove something that has not yet been added and an error is returned. I've tried using the DisplayObjectContainer class with the contains() method to no avail.