ActionScript 3.0 :: Communication Between Classes And Performing Action
Jun 2, 2009
I don't know how to phrase this, but as you can see my code below I have 2 classes.
1. wp_title
2. wp_date
How can I let wp_date to get the height of wp_title's contentText? Currently I tried tracing wp_title.height from wp_date but all I get was 0, I guess it doesn't get the height after wp_title finish loaded. Currently the classes will perform an action after I resize the stage. I assume if I'm able to get the classes to communicate with each other than I could have 1 main classes to control the actions perform in other class?
Is there a way to detect if my Vector is out-of-range before performing an action? I tried if (myVector[i] != null || myVector != undefined) { // do stuff here } But I am getting an out-of-range error.
So if you press and hold a button, it does the function once, then waits 0.5 of a second or so then repeats the action quickly. How do I remove the 0.5 of a second wait?
I always have the trouble that make different classes communicate with each other.
1. using get set methods
2. eventdispatch to dispatch custom event.
Today, I am working on this confused issue again. I still can't get through it.this time what I wanna do is this: I wanna use a button (_zoom) to control a mc (_board) located in different class. Let's me give a simple structure for you:
Im building my first OOP project with classes in AS3, Ive done a lot of tutorials and Im grasping the concepts well. Im just having trouble with the concept of communicating between classes. Whats the best way for a class to talk back to its parent once its instantiated? It seems when your inside a class, you're kinda stuck there as far as scope goes? ie one way street. Or am i missing something? Im used to the days where I was coding on the timeline and could just use this._parent etc. But obviously those days are gone.Or should I not need worry about this If I have planned the structure/heirachy correctly?
I had a question on OOP and the best practice for how to communicate between classes. If I have a class (SiblingA) where some one clicks something in it and you need to interact with another Class (SiblingB), what is the best method for doing this?
(option1) Should I have a bunch of event listeners in the Document Class that respond to these events? (I thought you wanted a document class to be as small as possible). (option2) Or should I create a separate 'Utility' class that speaks with both siblings to facilitate communication (event handling) between the two (one class with many public static methods). I have attached a diagram to try and help explain this.
Often times these events are dispatched from children of children in sibling classes (ie childOfSiblingA or even its children) Option1 Scenario: A user does something in SiblingA, that dispatches an event to the doc class which listens for it, fires its listener function which calls a (public) method in SiblingB to handle the interaction.
Option2 Scenario: A user does something in SiblingA which calls a (public static) function in Utility class which calls a (public) function in SiblingB to handle the interaction.
I think I am leaning towards option 1 but that would be a lot of dispatching events (child dispatches to parent, dispatches to its parent, dispatches to doc, doc calls child, which calls its child, which... finally does something)
I need to know how to reference variables in other classes. I have been avoiding this by referencing variables from the Main class, where they are created. But at this point I would like to be able to have the option and it would make me a better programmer.
Say I create a movieclip in the Main.as
Code: public var Enemy_mc:Enemy = new Enemy(); addChild(Enemy_mc);
[Code].....
How do I do that^ without creating a variable in Main.as and having it check Background.as for variable updates?
Can I do something like "Main.Enemy_mc += 5;" like I can do in Main.as to variables that I have created in Main in other classes?
1. I've created a menu which works almost what I want, but after I click a button and roll over to other buttons, it would show error. It show the error at the output panel but everything still working fine
Code: private function bgGlow(event:Object):void { //Disable menu below event.parent.button.visible=false;
So i think i have fully coded my calculator but it still doesn't seem to be performing the calculations correctly. I can't see where i am going wrong. If i perform a calculation let's say 6*2 it outputs NaN then i straight away + by let's say 5 it outputs NaN again. And it doesn't make the operators display only once, so if i click on '+' twice it will display twice in the display when it is meant to only display once and in one of my functions i cleared the display field so that it would replace the number's when the next operation is performed but it doesn't seem to be doing that. I have been going over the code several times but i can't seem to identify where the problem is coming from.
Actionscript Code:[code].....
I have not added the full code as it is too long, i have just added the parts which relate to each other. I am just doing everything entirely through actionscript, nothing is on stage apart from the display and answer text fields.
I had an onEnterFrame script that would make a cypher of some letters for you. I thought it would be great if I could wrap the code in a function so I could apply it to multiple textboxes at once. Since doing it (wrong!) it only actually does what its supposed to on one of the textboxes. What am I doing wrong?
To make this work you'll need a two textboxes, one with an instance name of text_one and one called text_two
Actionscript Code: // The String that will reveal itselfcypher_characters("text_one", 10, 5, 2, text_one);cypher_characters("text_two", 10, 5, 2, text_two);function cypher_characters(characters, time_until_start, time_between, frequency,
This is the source of my woes:[code]With just this code active (I've set up a test file), the movie clip "images" gets repositioned to x=630 at runtime. Why is it doing that? I wanted this function only to change the value of the "check1" variable, not to actually perform any translation on "images".
I have some code that I want to wait until the first step of the process is done and then do the next task. But I can't seem to think of a way to do it??The full code for the entire process is this:[code]How would I tell it to wait until the first part is done to perform the second part?
I had a simple swf with enter frame event that would move an object. everything worked ok , then I changed the framerate from 12 to 24fps. No everything is still working ok, execpt the movement in the enterframe event seems to be working at 12fps still...
ActionScript Code: function performonenterframe(evt:Event):void{ character.x += 5; trace (character.x); }
the trace now would give me 5,5,5,10,10,10,15,15,15 etc...so the event is kicking in every frame but it is moving the character every third frame only...
Sorry if the subject doesn't make much sense but I basically want to perform several if the statement when on movie clip is clicked. an example of an onRelease trigger that activates two if then statement that change the frames of 2 movie clips.
I have two InputText boxes (Flash CS5 AS3). I will perform calculations with the values that are placed inside the boxes. How can I turn their values into numbers? I will eventually restrict the boxes to numeric values only.
I want to build an application using air. The application should load the flashlog file and display the contents after performing some text filtering.But when i load the application this clears my flashlog.txt though my file mode is READ.I can understand that running my air application clears the flashlog and prepares it for new logging. Is there a workaround for this.I dont want to open the flashlog file everytime and check for traces from my web application
could you please point me out good Flash and ASP.NET integration tutorials out there? For example reading values from FLASH text-boxes for performing queries to MSSQL databases, and writing back values to flash.
I have a Custom Event that takes the name of a file uploaded through FileReference and bubbles the variable back up to the parent class. The Custom Event works and when traced in the parent class, it appears the variable came through as well and traces out in the output. However when trying to use this variable in the text field and assigning it anywhere in the parent class, nothing happens, not even an error.[code]
So i think i have fully coded my calculator but it still doesn't seem to be performing the calculations correctly. I can't see where i am going wrong. If i perform a calculation let's say 6*2 it outputs NaN then i straight away + by let's say 5 it outputs NaN again. And it doesn't make the operators display only once, so if i click on '+' twice it will display twice in the display when it is meant to only display once and in one of my functions i cleared the display field so that it would replace the number's when the next operation is performed but it doesn't seem to be doing that. I have been going over the code several times but i can't seem to identify where the problem is coming from.
I have a Custom Event that takes the name of a file uploaded through FileReference and bubbles the variable back up to the parent class. The Custom Event works and when traced in the parent class, it appears the variable came through as well and traces out in the output. However when trying to use this variable in the text field and assigning it anywhere in the parent class, nothing happens, not even an error.
If I wanted to change an action from a button click to a frame-based action, what do I use instead of onPress? The hints from the AS editor are all click-based.
I have a slideshow that is looped ... it contains 5 slides.I am using a gotoandPlay action to control the slide show.
on (release) { this._parent.gotoAndPlay("98"); }
There is a fade transition between slides.When a button is released ... I want to gotoandPlay (frame 98) ... and then have it stop 10 frames later on (frame 108). Frame 98 includes the transition ... if I just gotoandStop on frame 108 ... I loose the transition.Is there any way to incorporate a stop action, after a gotoandPlay action on my button ... without naming instances etc.I.E.
on (release) { this._parent.gotoAndPlay("98"); STOP ON FRAME 108 INTEGRATED HERE }
I just want to make a simple button action using actionscript 2 but I can't get it to work! I'm sorry for even asking but I've been at this for too long now for it to not work I'm using Adobe Flash CS4 and I do the following --
File -> New Flash File (ActionScript 2.0) Insert -> New Symbol Name - test Type - button Export for ActionScript Identifier - test
And then draw it in using the keyframes and add the code to 'Actions - Button' for my button
Code: on(release) { trace("trace"); }
I click on the button and it animates but no action event in the trace?
How can I get an action to follow another action when a button is clicked? When a button is clicked, I want the timeline to go to a certain frame and play and when it's done playing, to go to another frame and play. I basically want two actions in one function.