Flex :: Verifying Presence Of Button From Super Component Class?
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( ... ) ?
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?
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:
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()
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.
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
//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.
I have a component "child" which has a cancel button. Now this component is placed in a state called "newChildComp" I also have another component called "parent". In the parent component, i have a button that dispatches an event. Here is the event code:
[Code].....
so, basically,i am checking to see if the cancel button component in the Child component, while i am still in the parent Compoent, was clicked, if it was clicked, call the cancelButtonHandler. The problem is by the time the addNewChild handles the event, that cancel button was still null. My question is how do i solve this without using the itemCreationPolicy on the cancel button?
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
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?
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.
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?
I am trying to extend the new AutoComplete component from Adobe. In two different places I need to bypass the AutoComplete methods and get right at the ComboBox methods.
I was told that super.super.someMethod() works just like it does in Java. But I keep getting Compiler errors:1084: Syntax error: expecting identifier before super.Any suggestions other than just cutting and pasting the code and extending the AutoComplete superClass?
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 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?
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(); }
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.
I'd like to use a button within a component to remove it. So, you click it and the component is gone. But, I haven't figured out how you reference the component from within the component. What should I put in click=""?
Is there a way of verifying if the mouse is over an object like the MouseEvent class verifies, not by verifying with hitTestPoint? hitTestPoint calculates bases on the mouse coordinates, but I also need to know that even if the coordinates are over the object, there is not a second object over the target object.
Need regular expression that will verify if all the letters in the word "cat" were also in the word "coating" in the proper sequence? So for the word "coating", the RegEx will test true for "cat" but false for "act".
Our software team has been developing flash applications using AS3 (via the FlashDevelop IDE and the free Flex SDK). Recently, some members of the team started exploring FlexBuilder and Flex (wow... why did we wait so long?). The problem is that some folks continue to develop using pure Action Script 3 (FlashDevelop) while others are creating custom components in FlexBuilder. How do the AS3 developers use the Flex Custom components built in FlexBuilder in their AS3 Applications?
I have several components where I want to enable buttons based on passing a username to a function. I want to dynamically bind the "enabled" property on a button so that if the "somethingChanged" event fires, a button may become enabled or disabled. But, I'm not sure where to fire the "somethingChanged" event. It's possible that I may need to fire the "somethingChanged" event from several places in the application. Is this possible with a bound static function?
EventManager.as public class EventManager():void { [Bindable(event="somethingChanged")] public static function hasAccess(myVal:String):Boolean { }} [Code] .....
Is is possible to bind class properties to mxml components ? E.g.: I have a class A.as with a String property nameValue. What I want to achieve is always having the latest value of a mx:Text component in nameValue.
I'm trying to set the height of a vertical bar (activityBar) but it does not appear to do anything. i have tried something similar with the whole component, but setting the dimensions does nothing (even in the mxml used to instantiate the class). Indeed, I've added transparent graphics just to give the component some dimensions
FYI: I'm trying to create a mic activity bar that will respond to the mic by simply setting the height of the activityBar child (which seems to me to be more efficient than redrawing the graphics each time).
package components { import mx.core.UIComponent; public class MicActivityBar extends UIComponent { public var activityBar:UIComponent;
Is it possible to access a declared component as an IFactory within an MXML class? I've used this style of declaring factories many times for Skin Parts, but I've never figured out how to access those factories from within the MXML.
I would like to know if it is the same to assign properties to my custom component in its own class, or from the parent document. Here I assign the property bottom in my custom component class:
I was wondering how I apply an edited actionscript class to a component?
I've made a few changes to the TileLayout class (spark.layout.supportClasses.LayoutBase), but am unable to apply this new layout format to my group in my application... is it treated like a different tag within the layout tag?[code]...
How can I check for the presence of something on the stage? I want to disable mouse clicks on the currentTarget while an image is loading, and I'd like to use the presence of a progress bar as the determinant to proceed.
Code:
If (progressBar is somewhere on the stage) { currentTarget.mouseChildren = false; currentTarget.mouseEnabled = false; }