ActionScript 3.0 :: Sub-class Refer/communicate With Super Class?
Jun 22, 2010
i have recently started a project that would require writing a set of classes and a small API.i know some basics of inheritance and extending classes but i still have some questions.
1) how should sub-class refer/communicate with super class.i think that dispatching events is the way to go but i have no experience on that. i have previously done it by having a parent set up a reference to itself in a subclass e.g
ParentClass.addChild(SubClass);
SubClass.myParent = ParentClass;
//i know that there is already a "parent" keyword in flash objects if i extend one but is that a decent way to communicate with super class
e.g SubClass.myParent.removeChild(this);//sounds a bad call
//but is it better if i dispatched an event that calls the removeChild() in the parent.i have is about dispatching events in a class that is likely going to be extended.
ActionScript Code:
public class Button
{
//add event listeners[code]....
//now if i extend the Button class into another class, let say ControllerButton and want that button to dispatch different event. e.g ControllerEvent, i am forced to override and rewrite all the common stuff in the handler functions.how to avoid having to override allot of common stuff.
View 3 Replies
Similar Posts:
Dec 15, 2009
Is it possible to call a method in the super class of a super class? I tried the above and it doesn't work, unsurprisingly. Only way I've been able to do it is to store a reference to a super.someMethod in the super Class (eg. var superMethod: Function = super.someMethod) and call that instead. Seems reasonable and it works but wonder if there is an in-built method for doing this?
View 6 Replies
Dec 29, 2011
I am trying to create a spark datagrid item renderer. This item renderer extends a checkbox, and implements IGridItemRenderer public class CellCheckBoxItemRenderer extends CheckBox implements IGridItemRenderer
When I implement IGridItemRenderer, I need to implement the interface methods, I am having a problem with the following methods:
[Code]...
View 2 Replies
Jan 29, 2012
If 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()
View 3 Replies
Nov 4, 2010
I'm not really asking how. What I'm asking is, is it possible? And I ask because I thought it was not - certainly it didn't work in AS2 - and yet that's what I appear to have done. Am I going crazy? Structure: A SWF (#1) with a class NewActivity that extends class AActivity. Another SWF (#2) with a shared library of code in it, including AActivity. A third SWF (#3) which loads the library followed by SWF#1. Here's what happened: I didn't expect AActivity to be able to be shared. I mean, it should be compiled no matter what in SWF#1, as SWF#1 includes a class that extends AActivity. I had added some properties to the AActivity class, ran the project, and when SWF#3 tried to set those properties I was told they couldn't be applied. "Of course", I said, "I need to recompile SWF#1, because the code is now out of date. The version of the class there doesn't include these new properties.".
However, that didn't work. I got the same problem. Maybe, I thought, there's a definition conflict between SWF#1 and the library, so I removed the AActivity class from the shared library in SWF#2 for the time being. Only SWF#1 uses it, and it should already be compiled into SWF#1 as, like I said, it is extended by another class there. But when I ran the project, I was then told that the AActivity class could not be found at all! Looking at SWF#1 in a decompiler, there is in fact no mention of AActivity (I had up to this point assumed it was implied). So this left just one option: I needed to recompile the library in the first place, not SWF#1. I added AActivity back to the library, recompiled, and it worked.
To check I wasn't going crazy: I added a test property to the AActivity class and recompiled the library. The containing project - SWF#3 - then set this property on SWF#1, which had NOT been recompiled, and then read it back out. No errors. I should point out that the getting/setting of this property is done through an IActivity interface - AActivity is not being accidentally compiled into the main project (SWF#3), and the decompiler indicates this also. Am I going nuts? I really didn't think having a runtime shared super class was possible in any way. If it is, that opens up a whole new world of awesome, even though I've created this project on the basis of that being impossible.
View 4 Replies
Mar 14, 2012
Say i need to send some data from AS 3.0 to a server-side script for it to do some actions. Can I do this in a sub-class called some where in a document class or should we always do it in a document class?
View 1 Replies
Mar 9, 2010
i got a class(class1) that extends another class (class2)...when something happens in super class, i need to update the class1, soi need to trigger a function in class1 from class2... I know is bad programming, but is that possible? I'm confused
View 0 Replies
Apr 8, 2009
Do all variables and functions in super class, that I want to access from a sub class need to be set as public?
View 2 Replies
Aug 16, 2010
I am hoping someone can explain about subclasses accessing variables from the super class. I found that the subclass can only access variables which are set in the constructor of the super class. Is there any way around this?
[Code]...
View 3 Replies
May 8, 2011
I have the following scenario:i have a MovieClip and I created a linkage for it named A.
[code]...
what is allowed? how can I resolve the issue ? update ok this is an exact scenario but a more simple one that I still wasn't able to resolve. The original scenario is that I have a MovieClip called user_bg_me that has a linkage named user_bg_me that extends user_bg_genericthat extends 'MovieClip` inside user_bg_generic class i want to be able to modify elements inside the movie clip itself. using super.element_name provides an error that the property isn't found.
View 2 Replies
Sep 22, 2006
I got something just like that:
[code]...
I dont know if that is normal, but this code create an infinite loop, because when i create a new instance of class Two, because of the extends, the class One constructor is called again, and creating a new instance of class Two, and so on...I know how can i get this fixed, but, what i want to know is, this is correct? Its a Flash bug? Isnt that way in AS3?
View 8 Replies
Aug 19, 2009
How can I apply a TextFormat to a TextField instance in a super class?
Code:
// This doesn't seem to work:
var textFormat:TextFormat = new TextFormat();
textFormat.size = 24;
super.alertText.setTextFormat(textFormat);
View 5 Replies
Aug 15, 2010
Say i have these two classes:
MAIN.as
package
{
import flash.display.*; import mx.core.*;
import flash.events.*; import mx.collections.*;
[Code]...
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.
View 2 Replies
May 27, 2011
In Flex, lets say I have a super-class... something like:
class SuperComponent extends DragStack {
private var _childReference:UIComponent;
public function SuperComponent() {
// ???
addEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete);
} private function onCreationComplete(e:FlexEvent):void {
//The 'this[]' technique doesn't seem to work and causes run-time errors:
//trace("Component found: " + this["myButton"]);
}}
And then I make use of the following derived-class in my application (just a mockup MXML as an example):
<!-- Component ChildComponent.mxml -->
<mx:SuperComponent>
<mx:Button id="myButton" label="Press Me!" />
</mx:SuperComponent>
How do I go about verifying the presence of "myButton" from the SuperComponent class, and referencing it? Do I need to use getChildByName( ... ) ?
View 2 Replies
Sep 24, 2011
I always don't call super() when I extends Sprite.But doesn't not calling super() cause any problem?Till now, I don't have any problem and I have never seen code which call super() in constructor which class extends Sprite. How about TextField? I don't have any problem about TextField, too. How to know whether I should call super() or not?
View 3 Replies
Jun 3, 2009
Lets say I have the following inheritance hierarchy:
Code:
Select allpackage {
public class ClassA {
protected function foo():void {
// do something
}}} package {
public class ClassB extends ClassA {
[Code] .....
Now this is all well and good, as the call to ClassC.foo() will propogate through the inheritance chain; C > B > A. But what if I want ClassC.foo() to call foo() that is in ClassA and bypass the method call in ClassB? I have tried the following:
* Cast the method to the super-class type I want to execute, but this does not work as intended.
Code: Select all...
override protected function foo():void {
// do something related to Class C
// call ClassA.foo
ClassA(this).foo();
}
View 2 Replies
Aug 10, 2011
I'm trying access a static variable located of a super class through an instance of one of it's subclasses and I'm receiving an access of undefined property error (example of which below). Creating another static variable in the subclass and assigning the value from the super class will allow me to dot operate to it.
[Code]....
View 1 Replies
Jun 7, 2010
I have a class that places objects on stage with addChild(obj) it allowes me to position objects using pixels( say obj.x = 10; obj.y= 50; ) just fine but if
I try this: obj.x = stage.stageWidth / 2; I get a message that I Cannot access a property or method of a null object reference
View 4 Replies
Jun 19, 2011
I have the class avanzada.as:
package
{
import flash.display.MovieClip;
[code]........
View 2 Replies
Jun 15, 2011
I have this class:
package {
import flash.display.MovieClip;
import flash.filters.BitmapFilter;
[Code]....
Appears this error message:
"1137: Incorrect number of arguments. Expected no more than 0."
I try with:
new MovieClip(this.root).cambiaBlur(gift);
but also fails.
View 1 Replies
Jun 17, 2011
I need to populate the text field tField (defined on stage) that resides inside ParentClass (MovieClip with same class name). I want to be able to set tField.text to whatever I want from AnotherClass. How do I do it?
View 2 Replies
Jan 23, 2012
So I know how to target a specific instance using MovieClip(root).objectName which I think is nasty way of referring to it anyways, but right now I'm trying to make a fighting stick-figure game and I can only refer my code to one NPC right now using an "enemy" class but I would like it if I could spawn multiple NPC's at once using the enemy class and instead target the enemy class instead of the instance itself while still having the NPC instances being unique so when I hit one they don't all get hit.
View 1 Replies
Feb 24, 2010
Is it possible to refer to a variable in a class file separate from the one you are working in? Say Class1.as had a variable named "exampleVar", and in Class2.as you wanted to put something like "exampleVar++;". Is this possible and if so how would it be achieved?
View 1 Replies
Feb 21, 2011
communicate between custom classes.
For example: how to get public var value in document class from another class in another package.
i know two ways but i need to know what if i am in the right side or not:
1- public static var Root:Main = this; and then call Main.Root.PublicVarName from another class.
2- make instance from the class ( var classInstance:ClassName = new ClassName() ) then to call function or var ... ( classInstance.PublicVarName ) but in this case i can't call the Main ( Document class ) as i got an error when try to create instance from Document class.
View 3 Replies
Feb 4, 2011
How do I communicate from a class to the root? I've got a class that does some different things including communicating with a webserver. When it does its thing, I want it to communicate that back to the main part of the program. I'm thinking that an eventdispatcher could do it, but I haven't been able to get it working right. When all is said and done in my class, I tried including:
[Code]...
View 1 Replies
Jan 12, 2011
If one uses [Embed] to refer to external graphic assets its easy to instantiate and use them.However, I've got a png in an Fla, with the Class identifier set to "Symbols", Base class is BitmapData.I need to instantiate it like this:
var symbols:BitmapData = new Symbols(1, 1);
addChild(new Bitmap(symbols));
Of course the compiler complains about a call to a possibly undefined method Symbols.For a temporary fix I guess i'll put the graphic external to the swf, but for this project it needs to be in the library along with everything else.
View 9 Replies
Jan 6, 2007
I spent my holyday in studing new Flash 9, very good, powerfull but I doesn't find anymore my root, in teory is transformed in stage.root but it doesn't work.I want to understand if I make a mistake in my code or in my approach.I make a simple example with a few object containers.In the firsts lines of the constructor of the mail class I create the style class named tf and then the interface class called interf.Here is my class
Code:
package test {
import flash.display.Sprite;
import test.tf;[code]....
how to get the tf1 Object that as to be in stage.root.mytf.tf1 as some documentation say? If you doesn't comment that line you have an error. Obviously you can carry with you the object because is a small object with a few nidification but It seems to me very very bad for performance and code.
View 2 Replies
Apr 13, 2009
how to refer the main time line or stage from inside the class.
class sample{
function sample(){
trace(root); // its displaying as null
}
}
in actionscript 2 we use _root for this... in actionscript3 if we use root...why its not working inside the class....?
View 1 Replies
Jun 3, 2010
In Flash Player 10.1 and later, the ScriptBridge class provides another way to communicate from JavaScript running in a browser to ActionScript (but not from ActionScript to JavaScript). The ScriptBridge class offers significantly better performance than the ExternalInterface class, and provides access to the entire ActionScript 3.0 API from JavaScript. By contrast, the ExternalInterface class provides access only to callback functions in ActionScript.If you need to call JavaScript from ActionScript, or need to communicate between ActionScript and any other programming language
you must use the ExternalInterface API. If you need to call ActionScript from JavaScript, the ScriptBridge class is recommended. The rest of the section describes the ExternalInterface class.my research makes me believe that this new Flash Player plugin API is most likely resulting from implementing recent changes in the Netscape Plugin API. Hopefully it should be as simple as having the player script NPObject properties and functions to use to access objects, packages and classes of the flash application.
View 2 Replies
Nov 20, 2010
I have a document class .as file and I'm trying to communicate an object to another class with a getter. But it's nested inside another movie clip. The compiler says the movie clip it's nested in is undefined. Also, the moviecllip it's nested in is on the stage, dragged manually from the FLA LIbrary and has the instance name, gamelevel1 in the instance name box. I referred to it when I put the _player movie clip, which I'm trying to communicate with the getter, on the stage via and addChild method. Anyway here's the friggin' document class script:
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Bitmap;
import flash.display.BitmapData;
[code]....
View 3 Replies