ActionScript 3 :: Why Omit New Keyword When Instantiating Custom EventDispatcher
Aug 16, 2011
I am currently reading the Actionscript 3 Bible and the author shows an example in which a custom eventDispatcher class is created. When the class is later used in the code it's called as such:
//Thermometer is a custom eventDispatcher that extends the eventDispatcher class.
var thermometer:Thermometer = Thermometer(event.target); //why no new keyword?
I'm a new programmer and I was curious if someone could explain how this works? Why is the new keyword omitted? When you omit the new keyword on a class that extends another class is it essentially just calling the superclass(eventDispatcher) constructor?
How to dispatch events from a class (.as) to a document (.fla) ? In my example there's no compiling error but nothing displayed by trace(). What's wrong and how to do to make it works? example.fla
I have a sprite A which has a child, sprite B.Sprite B has a variable, instance of class C which only extends EventDispatcherIn class C, I dispatch a custom Event. The eventlistener in sprite B reacts on the event.The same eventlistener in class A doesn't respond.If I dispatch the same custom event in the eventhandler in class / sprite B, this event is seen in class / sprite A.Is there a difference in events going through the displaylist and those who are from an EventDispatcher?
I dispatch a custom event from an event dispatcher (following solution Inherited a class from EventDispatcher in Flash but custom event not received) and I add a listener in both dispatcher itself and in main. trace shows that only dispatcher receives this event not main. How to make main also receive the event?[code]
I asked yesterday how to call a function from an XML file, and I figured out how to make that work using the string-to-function call.so in my XML file I have <ITEM CALLBACK="ContactsList">View All</ITEM>, and my TextMenu class parses the XML file and creates my navigatable text menu instance. When enterMenu():String is called, it looks to see if the CALLBACK attribute has a value, and if so it returns it as a String.so..
var callbackFnc:String = textMenu.enterMenu(); if(callbackFnc != null) {
EDIT: For whatever reason, it works in the browser but not when compiled/debugged within the IDE.I can't get my external SWFs to pick up on dispatches from my singleton event manager (EventDispatcher). Here are the particulars:
I add children from an external SWF using the getDefinition method to my main SWF.I'm using a singleton EventDispatcher that is in charge of listeners and dispatching.Using a custom event class.In this code, I am trying to get a mute button to tell the main SWF that the mute icon has been clicked (SoundClipEvent.MUTE_CLICK). After the sound has been muted, it should dispatch the event (SoundClipEvent.STATE) and confirm to the muteIcon the state. Currently, the mute icon successfully dispatches the MUTE_CLICK event and the main SWF document class is able to pick it up. MuteIcon (child SWF MC) hears nothing from the singleton.
SoundClipManager.as:
import flash.events.Event; import flash.events.EventDispatcher; public dynamic class SoundClipManager extends EventDispatcher {
I am having an issue where I cannot use my own classes in CS3. When I try to create an instance of one class inside another class, from within the same package like this:
var t:myClass = new myClass();
gets me 1067: Implicit coercion of a value of type myClass to an unrelated type Class.
The constructor for the class is simply:
public function myClass():void { this.isactive = false; }
I have a custom event that is dispatched when a slider is moved but I receive no event from inherited dispatcher class I created whereas I followed the same syntax as solution for My flash custom event doesn't trigger
I am trying to work with the EventDispatcher class to dispatch a custom event to stop a video from playing. The video plays inside a MovieClip with an attached class file called PlayerProfile. I want the video in the PlayerProfile MovieClip to stop playing when the user clicks on another MovieClip called ScrollBox. I'm getting no compile or runtime erros, but the code is not stopping the video. I have seen use of a public static constant to represent the custom event. Is that what I am missing here.
Suppose I have a Sprite (A) that is constanly being rotated (as often as the mouse moves).
I have another Sprite (B) that is a child of (A). It makes sense that B is a Child of A because I want B's position to be relative to A's position, and I want B to become invisible when A goes invisible, etc.
However, I would like B NOT to rotate when A rotates. Is there a way to omit B from rotating when A rotates, even though B is A's child?
I know I could do something like B.rotation = - A.rotation everytime A gets rotated, but that feels like a clunky hack to me... there must be a better way?
Currently I'm considering making B a separate object, and not a child of A. But thats not much better because then I have to keep B updated with A's position and visibility, etc...
I'm working through a tutorial to create an mp3 player in actionscript. When I delete my first 4 lines of code, the .swf still works great! I thought you needed to declare what classes you're importing for every object you create later on.
If I turn 'Omit trace actions' on, then when I run the file, I get the error that says: Stack underflow occurred.
Fortunately, it told me what class it occurred in, so I took out the traces one by one, and I found one particular line that causes the error. It's just tracing a string, and it causes the error anywhere inside of this one function.
So I can easily avoid the error, by either erasing that one trace, or by turning 'omit trace actions' back off. But I don't really get why it's happening.
If I have a form with 12 text input fields on one page and on another for a different reason I have 4 text input fields how do I keep this information form the 4 from being passed to my php script?
I'm sitting here doing some C# programing and in one of my switch statements I ended up using the goto keyword. Well just out of curiosity I booted up FDT and created another switch statement in ActionScript 3. Well to my surprise there is apparently no goto keyword in AS3 or at least I couldn't find a substitution.
My problem is that I have no idea as to how to code it. I know I will use two classes and my two .fla files (unless I am wrong).I have two .fla files that are in play here: the Menu.fla file and the Arena.fla file. Menu.fla contains the entire navigation of the game, options, character selection screens, etc. and when it is time for the player to engage in battle, it loads the Arena.fla file, which contains only the backgrounds (depending on the selected stage) and for now is set to a length of one frame only. For Arena.fla, the real action happens in my classes, but logically, I would only need HP.as and Character.as.
In Character.as, I have declared the following variable:
var isDead:Boolean = false; //is character dead?
In HP.as, believe I should have the following:
if(currentHp<0) { currentHp = 0; character.isDead = true; //declared as var `character:Object;` EventDispatcher.dispatchEventListener("playerDead", playerDead); }
And finally, in Arena.fla, I want to be able to detect the above-mentioned eventlistener and simply move on to a second frame which will display a message in the style of "PLAYER ONE HAS WON" or "PLAYER ONE HAS LOST" with a button that will allow me to go back to the character selection screen. This is the first part in which I am stuck: how do I detect the dispatched event listener in my main .fla file?
Secondly, if the player clicks on the "CONTINUE" button, which displays regardless if the player has won or lost, how can my Menu.fla (which loads the Arena.swf) detect this click event, unload the game, and go back to the character selection screen?
I have several classes with some eventListeners in my project that interfer with each other. I.e. i have a mouseclick event that is not triggered, when i have another class with init events running at the same time. when i remove that other class, the mouseclick event is triggered correctly.
now i am not 100% sure, but i think the solution to this has something to do with EventDispatcher.can anybody please tell me if that is correct and how i can add EventDispatcher to my code without recoding everything?
I'm trying to create a movie, that when a correct word is entered, it goes to a specified frame. The code below words fine but I need to make an addition to it,
on (release, keyPress "<Enter>") { if (inputtext eq "word1") { gotoAndStop("frame1"); } else if (inputtext eq "word2") {gotoAndStop("frame2");[code]....
I was hoping to add extra words that would go to the same frame. I know I ca do this by�
if (inputtext eq "word1") { gotoAndStop("frame1"); } else if (inputtext eq "word3") {gotoAndStop("frame1");
but was wondering if there is an easier way, something along the lines of�
if (inputtext eq "word1", "word2", "word3") { gotoAndStop("frame1");
I was wondering if there is an easy way to search a string for a keyword. I am working on a twitter piece which searches strings for keywords and have found a way of loading all the data properly.
I'm a complete novice to ActionScript, OOP and Flash. I have no idea when you are supposed to use the keyword "this". I have searched the forums but obviously searching for the word "this" is not very successful! I've read quite a few tutorials now and it seems that different people have different opinions on when and where it should be used. For example what should I be doing in the following class? Both seem to work but is one the "correct" way? Are there situations where things will not work if you omit the "this"?
ActionScript Code: public class Sector { private var _radius:Number; public function Sector(radius:Number){ [B]this.[/B]_radius = radius; } public function get radius():Number{ return this._radius; } public function set radius(value:Number):void{ this._radius = value; }}
I have another possibly related question with regards to naming conventions. I like the use of underscores for properties with getters and setters but what about the names of the constructor parameters that are used to initialise these properties? In the above example I have used "radius" for the constructor parameter although it is also used for the getter and setter functions. It seems a bit of a palaver to come up with different names for the same quantity but is what I have done really bad coding practice?
I am trying to create a number of movie clips in my main movie but I don't seem to be able to access these movies using array notation and the 'this' keyword. Here's some example code in a main timeline. var i=0; createEmptyMovieClip("clip"+1,0); trace(this["clip"+i]); ////undefined - why????? var clip=createEmptyMovieClip("clip_holder",1); clip.createEmptyMovieClip("clip"+i,0); trace(clip_holder["clip"+i]); /////_level0.clip_holder.clip0. This is ok. What's wrong with this["clip"+i] ?
i got an error in AS.1042: The this keyword can not be used in static methods. It can only be used in instance methods, function closures, and global code.this is the error line.public static var defaultEase:Function = this.easeOut;
For some while I am researching on dispatching Events on AS2 which can bubble as it happens in AS3. This is not the first time in this world and I hope you all know how to do it in AS2. My issue is not on addEventListener but the removeEventListener which is not removing that particular event from that object.Cause the handler argument in the mx.events.EventDispatcher is throwing undefined where that should be [type Function]. At the time of registering on addEventListener it is registering the handler as [type Function], but it throw undefined on removeEventListener method.
I am trying to dispatch an event from one class to be received by another another class.The second class has a function that shoud trigger when the event is caught.When I compile I get this error:1067: Implicit coercion of a value of type flash.events:MouseEvent to an unrelated type String.
Here is the class that dispatches the event: package{ import flash.display.MovieClip; import flash.events.MouseEvent; import flash.events.Event; import
I'm working on a an interactive map of the Lewis and Clark Expeditons' experiences along the Missouri River in Montana and I'm running into some difficulty using the EventDispatcher class.
I have a couple of classes that I am working through this issue with. Relevant code is bolded.The first is a Main class that I am using as my Document Class:
I was wondering when you guys extends EventDispatcher in your class. It seems to me that as long as we have import event package, we can dispatchEvent without problems....I saw sometime people extends EventDispatcher in their clas
I have a question regarding the capabilities of the EventDispatcher. Is it possible for flash to dispatch an even and be able to push out information like an int or string?