ActionScript 3.0 :: Capturing An Event From Extended Class
Nov 14, 2009capturing an event from extended class. i am extending class B from class A. snippet form class A (ButtonControl):
[Code]...
capturing an event from extended class. i am extending class B from class A. snippet form class A (ButtonControl):
[Code]...
Is it possible to dispatch event from class that isnt extended class of MovieClip? I created my own class and put import flash.events.Event; import flash.events.*; but when i call dispatchEvent compiler throws error:"1180: Call to a possibly undefined method dispatchEvent."
View 3 RepliesI have created a class (extends the Event class) for use in one of my projects. If I trace the custom event object in the called function I get 'Event' as the type, but if I trace a TimerEvent, or MouseEvent, etc, I get TimerEvent or MouseEvent... Let me demonstrate:
var c:CustomObject = new CustomObject();
c.addEventListener(CustomEvent.ON_SEND_MESSAGE,fnc);
function fnc(e:CustomEvent) {
[Code].....
I have 1 class (that is extending a UIcomponent) that is representing a component. In that component I create different instances of another class that is also a UIComponent but this class doesn't show up in de first class. I see that it is running and that it has the correct hights but I got the feeling that it doesn't show up with this hights. If I trace I see the width and height is 200 X 200 but there is still nothing visible in my component.
View 1 RepliesWhat is the use of event bubbling and event capturing?
View 3 RepliesIf I have three classes:
public class Example {
public function Example () {
}[code]............
You can see that the two last classes extend the first one, and both have the 'variable' property. In case that I have an instance of Example and I am sure it is also an ExtendedExample OR AnotherExtendedExample instance, is there some way to access the 'variable' property? Something like
function functionThatReceivesAnExtendedExample (ex:Example):void {
if(some condition that I may need) {
ex.func()
package{
public class Character{
protected var _hp:uint = 50; //Character Health Points
protected var _power:uint = 5; //Damage dealt
[Code].....
I`m instancing a Character and a Player in the Main Timeline, all in frame 1.
When I use: ""player.attack(character)"" it works fine by itself.
So I added the if (defender._hp <= 0) this.win() which gives me the following error:
1061: Call to a possibly undefined method win through a reference with static type Character.
"defender" is a Character instance, "this" is a Player instance and "win()" is a Player method. I try to call the Player method inside a Character method using the Player instance adding the "." and his method name
Do I really need to define the win() function in the Character class? Is there a bypass to use a subclass method in a parent class method if it`s called from an instance of the subclass?
I created an flv video player using Flash Builder 4. This "BasicVideoPlayer" project is compiled into a SWC that will be eventually be used to create other video players that extend the functionality. One of the features is a view that appears when the video has finished playing that displays a "Play Again" button. This "Play Again" view has its own class, "BasicPlayAgain", that accepts a graphic asset that is exported from a .fla file that contains all of the graphic/UI assets.
In my new project, "EnhancedVideoPlayer", I'm using the BasicVideoPlayer SWC as a library to create a new video player that will add more functionality to the "Play Again" view; specifically it will add more buttons to that view.The EnhancedVideoPlayer uses a default class that extends the BasicVideoPlayer class. The BasicVideoPlayer class has a member called "playAgainScreen" whose type is BasicPlayAgain. The EnhancedVideoPlayer needs to override the playAgain member and recast it as EnhancedPlayAgain so it can control the new buttons properly.
Let's say Class A has the flash.events.Event imported. Now let's say Class B extends Class A. Why in the hell do i need to import flash.events.Event in Class B? It makes no sens at all to me.
View 3 RepliesThe use of library classes confuses me once again. I have the following situation:
[Code]....
I cannot put in any baseclass when using the class, so I'm forced to remove the baseclass. When using only the class I get a whole bunch of errors don't make any sense at all, and still appear even if I comment out all the code in the Page class. comop_padpagesFavorietenPage.as:7: 1152: A conflict exists with inherited definition com.op_pad.pages:Page.help in namespace public.
[Code]...
In IE, if flash has focus, and receives a keydown event, it does not appear to bubble the event up through the DOM (I can't capture the event by listening on document, however the same listener can capture key events from html siblings, so I know my listener is working).
However, some other plugins on the page (I am looking at you windows media player) still respond to key events that initiate in flash (and I need to prevent that from happening)! It seems that the key event initiated in flash takes the bubble express highway straight to the top (where the top is whatever is above document in the DOM hierarchy). I have tried terminating the events in as3, and tried different wmodes... neither approach works.
I came across this annoying bug in Linux.
consider this code as timeline code:
ActionScript Code:
import flash.utils.getTimer;
import flash.events.KeyboardEvent;
[Code]...
(haven't tested in Mac, I deleted my mac vm as it wasn't accurate)
What is going on is that just after a KEY_DOWN event, a KEY_UP event fires, even though you didn't release the key.
Now as for where this bug is located, I'm not sure. It could be with how flash integrates into the already present keyboard interface of the OS, or it could be the OS's keyboard interface itself.
But see either way, it's something I can't control. I can't change flash player, nor can I change the keyboard interface of the OS (well I can, but what about other users with Linux?).
So what I need is a way around this. To side step this key up event when the key up didn't actually occur. Because this is causing some majour issues with my KeyboardController class.
[edit]
furthermore it makes me wonder what might be going on in Solaris.
I think I'll reinstate my vm's of Solaris and Mac OSX and see.
I created a new CustomEvents object which I want to use to let the main class located in .mxml file to know about an event which had finished it's work in Crop class. However when I dispatch a CustomEvent from Crop class I can not catch it in my main .mxml file's class.
CustomEvents class
Code:
package actions
{
import flash.events.Event;
public class CustomEvents extends Event
[code]....
In IE, if flash has focus, and receives a keydown event, it does not appear to bubble the event up through the DOM (I can't capture the event by listening on document, however the same listener can capture key events from html siblings, so I know my listener is working).However, some other plugins on the page (I am looking at you windows media player) still respond to key events that initiate in flash (and I need to prevent that from happening)! It seems that the key event initiated in flash takes the bubble express highway straight to the top (where the top is whatever is above document in the DOM hierarchy).I have tried terminating the events in as3, and tried different wmodes... neither approach worls. Is there something I might have missed?
View 0 RepliesOk, I have spent a little time searching and I can't seem to find an answer to my question, maybe I'm asking the wrong question. here's my situation:
I have a document class called Main.as, this class has variables that instantiate a CreateShape.as class that acts as a superclass. The CreateShape.as class has a protected function that is overridden by other classes (I have a CreateCircle, CreateSquare etc). Those CreateCircle etc classes, use extends to extend the CreateShape.as class, and thus have the ability to override the main method (called newShape()).
[Code]...
I registered a very simple button event listener in A.mxml:
<mx:Script><![CDATA[
import mx.controls.Alert;
public function Handler():void
[code]....
It works fine when clicking the button everytime.Now I want to have something interesting,that is,I want to capture this buttonClick Event in another mxml file,say B.mxml and do something in B.mxml instead of A.
I am testing timerevent with flex unit. Follwing is the code which i tried ,it always goes to cmdFailed function (Time out function).I am new to flex unit.[code]
View 1 RepliesI created a menu from a created .as extended Sprite class.
Except from this menu, I need it to return a String value of the item name the user selected.
I have my main stage, and I have two objects (blocks), these two objects both extend from the "Block" class. The "Block" class is NOT extended from the Main Class.I would LIKE to call a function, in either the "Block" class or in it's subclasses, from the Main Stage Class. The functions will do slightly different things depending which object you are calling the function (Added different things, and different number of things to an array). What is the best way to implement this?
View 2 Repliesi have this class but instancing it nothing appear
class myclass extends MovieClip
{
var mc:MovieClip;
[code].....
Is there a way to hide properties or methods of an extended class?Ie, I want most of the extended properties and methods to be accessible but I want to hide others and use my own instead (not just overriding).
View 2 RepliesI'm having some trouble with using a Document class in Flash CS3 that is an extension of another class. When I do this, I can no longer make references to MovieClips with instance names on the stage.Here's an example. I have a class called Minigame that extends MovieClip and then a class Shooter that extends Minigame. So the relationship looks like:MovieClip <-- Minigame <-- ShooterI want to use Shooter as my Document class in the Flash file Shooter.FLA. However, when I do this, I am unable to directly access any instance names of MovieClips on the stage of Shooter.FLA from Shooter.as. In other words, if I try to write the line:var mc:MovieClip = this.instanceName;in Shooter.as, I get the error:1120: Access of undefined property instanceName.
View 1 RepliesI'm new to AS3 and I'm having a problem with an extended class that uses a URLRequest. I have a basic class called 'imageLoader' that I use for loading in external images
[Code]...
I'm trying to capture keyboard events with the following code. I'm testing in an external popup flash player in FlashDevelop and it ain't tracing anything. I reckon it might be something to do with keyboard shortcuts in the flash player.
But I can't find where to disable them?
ActionScript Code:
package {
import flash.display.Sprite;
import flash.events.KeyboardEvent;
[Code]....
If I have a class that extends another, e.g.,
package {
import flash.display.Sprite;
public class MySprite extends Sprite{
[Code]....
and extend that class, if more than one internal classes are defined:
package {
public class MainClass extends MySprite {
public function MainClass():void{}
[Code]....
ReferenceError: Error #1065: Variable MainClass is not defined.Note that this only happens (as far as I can tell) when the public class of the package extends another class, and multiple internal classes are defined. The internal classes don't even need to be instanced or referenced to generate the error (the bare-bones code above will error out). If only a single internal class is defined, it works fine (no error). Even if the internal class is instanced.
i've only ever created external .as files that extended a class such as sprite. now i just want to create one that doesn't extend anything and call it from a frame script.
[Code]...
All my custom classes that extend MovieClip simply trace as "MovieClip" when using stage.getChildIndex(i); I'm trying to search the stage to see what objects have been placed and then add them to the correct array. E.g. if I place 5 "Enemies" on the screen, I want to then add them to an array by searching the stage for the "Enemies" class, without naming each one and adding it manually in the code.
Edit:
Code:
for(var i:int = 0; i < stage.numChildren-1; i++)
{
trace(getQualifiedClassName(stage.getChildAt(i)));
[Code]....
I have recently started out with flash oop concepts and was wondering how to do create an instance of an extended movie class without dragging and dropping the clip from the library ....I have figured out this method..
for(i = 0;i<100;i++)
{var mc:MovieClip = attachMovie("ball","dasd"+i,_root.getNextHighestDe pth());
mc._x = Math.random() * 600;
mc._y = Math.random() * 600;
}
but this way I cant pass arguments to the constructor function of the ball class..
1. I create a board class in board.as as so,
public class board extends Sprite {
public function board(p1:Number = 0, p2:Number = 0, p3:Boolean = true) {
this.mouseEnabled = true;
addEventListener(MouseEvent.CLICK, go);
} private function go(e:MouseEvent) {
trace("mouse clicked");
}}
2. In .fla, I declare the document as an instance of the board class.
3. Clicking anywhere on the document's UI, no tracing output.
4. If I put a textfield as the child of board object (by adding these lines,
var tf:textField = new textfield();
---
addChild(tf);
In the constructor), I do see above trace() working.
What am I missing? How can my board class receive mouse click?
I have some movieclips on my main timeline with a class to extend these movieclips
[code]...
But the I can't 'reach' the testing function. I get this error: "1061: Call to a possibly undefined method testing through a reference with static type flash.display:DisplayObjectContainer."