Flex :: Override A Protected Method From UIComponent?
May 30, 2011I want to create a custom button in ActionScript. [code]...
View 2 RepliesI want to create a custom button in ActionScript. [code]...
View 2 RepliesIs it possible to override a protected function to a public.
View 5 RepliesI've a custom itemRenderer for my datagrid. To set the actual data I use the following method:
override public function set data(side:Object):void{
...
}
As soon as I use this function the cell doesn't show up any item Editor anymore. Why is that? When I remove this function the itemEditor is working but with the wrong initialization data.
I need to override the call method from NetConnection class, the signature of the method is:
[Code]...
I always have a question about override custom event. I am not sure why or what do to inside override function. I searched google but didn't get too many feedbacks. EDIT: My projects seem work fine even though I use my custom event without override. Anyone could explain it?
View 2 RepliesIs it possible for a class to override it's own methods at runtime? I know this is possible to do in JavaScript by simply assigning a new function to the method name, but this doesn't appear to work in AS3.
Example: Let's say I have a DisplayObject with many accessors and methods. The user is allowed to load a dynamic library that overrides several of the functions and methods in the DisplayObject. As author of the DisplayObject, I have no idea what methods the user's library is going to override... only that they can. IS this possible?
The only thing I can come up with so far is to literally override every single method and accessor in the DisplayObject, then performing a check whenever they get called:
[Code]...
I'm using flash to draw objects, then I export them and use them from flex, and I'm a beginner in flash.
I'm trying to do the override a method from the MovieClip I created. The method I'm trying to override is stop() method. I didn't write a single line of code, my movie clip is created using entirely the flash interface. I figured out how to add actions to the movie clip when a frame is reached but I'm stucked now when I'm trying to override a MovieClip method.
Well, basically, you know the question already What bugs me is that I cannot get an answer to this because compiler doesn't like overriding internal functions in different packages, but, I would like to know what you think it should do, if it would have compiled?
I.e. imagine: I have foo.bar:A class and foo.abc:B class. Then foo.abc:B extends foo.bar:A.
foo.bar:A defines internal function f(). foo.abc:B overrides internal function f(). Now, the question: Can foo.abc.C call foo.abc:B#f()?
Is it possible to override/replace a method of a class in AS3? When I say "replace", I don't mean subclass it and override it. I mean I literally want to replace the existing method with my own. For instance, AS3 has the built-in HTMLLoader class which has a load method. I want to say, in essence:
HTMLLoader.load = function() { trace("Overridden"); };
Therefore, when *anybody* makes a new HTMLLoader object and calls the load method, it will call my method instead.
I've tried a couple things, and so far I've gotten this far:
HTMLLoader.prototype.load = function() { trace("Overridden") };
And I compile it with -as3=false -es=true -strict=false. The problem is it doesn't override the already-existing load method. It looks in the class first before looking in the prototype, thus making it not work. There must be a way. Even if I can't override it, can I proxy it like a decorator in Python or a macro in LISP? (So mine gets called then it gets called.)
override a custom class method with a function expression? For instance, if I want to change the destination of a button on the fly, I could theoretically type:
Code:
var new_destination:Function = function(evt:Event):void{ go_to_new_place();};
myButtonClass.mouse_clicked = new_destination;
but unfortunately that generates an error because the class method "mouse_clicked" is already defined in my class (with the eventListener tied to it). I tried using the "override" keyword in the Function Expression but that didn't work either.
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 RepliesI am new to Flash/Flex. I would like to use a Component I created in Flash extending fl.core.UIComponent. How do I use this in Flex? Do I just export it as a swc or do I have to use the Flash Flex 3 kit which will convert it to a UIMovieClip. That does not sound right.
View 2 RepliesI am trying to understand the interaction between Flex UIComponents and (Flash?) DisplayObjects... But it's not clear to me what the UIComponent class "adds" to DisplayObject. So, what can a UIComponent do that a DisplayObject cannot?
View 2 RepliesI've created a AS3 class which extends UIComponent so that I can easily add it to my MXML layout. It works fine, but I'm trying to figure out how to update the UIComponent width and height dynamically. I want my super UIComponent to draw a border around the content, so I need get the specific 'content' dimensions in order to do this.
I understand the idea of UIComponent is that you are supposed to specifically set the width and height... but I am literally only extending it so that I am able to use my custom component with MXML easily.Is there a method in which I can get the width and height of a UIComponents 'content'?
What is the difference between a UIComponent and a Sprite in Flex.
View 1 RepliesI'm trying to put a label and an image on a UIComponent, side-by-side. I want to use UIComponent for efficiency reasons, and the entire component is more complicated than just a button with an icon.
I'm trying to get a click handler on ther entire UIComponent so that when a click happens on either the label or the image, the same [click] event handler is called. If I add a click handler on the root component, it works, but when I introduce space between the label and the image, the space between them becomes un-clickable. I produce the space by using the move(x,y) method for the label and the image with a small gap between the x/y coordinates.
I'm using the ravis FusionWidgets component in flex to create guages.I have a problem to change a guage in my program.I build an mxml component with the guage like this:"ns1:FusionWidgets id="myGuage" width="{guageWidth}" height="{guageHeight}" FCChartType="{guageType}" FCDataXML="{guageXML}" y="0" x="0"/"when the guageType and the guageXML is the bindable data providers.when I place this component in first time, the providers don't contain nothing and i let the user to change them in my flex application.the problem is that when the user change them, the guage doesn't update itself.I know that when I change a bindable data provider, the component must be changed.
View 1 Repliesi am trying to add a uicomponent which contains an object of a custom class the extends UIcomponents and i want to display this uicomponent to canvas i have done no error compile or run time but it does not display the Uicomponent.
here is code;
var item:RecordRanderer = new RecordRanderer();
item.randerItem(child);
item.x=20;
[Code]....
What is the nonInheritingStyles property for on the UIComponent?
Is this a list of styles that the component does not inherit from the container?
Or is this a list of styles that have been set inline or in code so the component is just telling me that they are NOT inheriting from the container?
If it's the first why are their values set for this properties?
i want to add UIComponent inside a spite. here is the code:
private function make() : void {
var circle : Sprite = new Sprite();
circle.graphics.beginFill(0xFF0000, 0.2);[code]......
the problem is that button is added, but is not displayed. if i do reversed - add sprite to uicomponent - everything works fine, but this way it doesn't work. i tried to use invalidate functions for button etc... even tried making "circle" as UIMovieClip, but no luck - button is still invisible. also if i simply do "addChild( button );" - it is shown,how can i add a button inside a sprite?
I'm trying to extend a class like panel so that I can fire click events only when the title area is clicked on. The title area is a protected uicomponent of Panel called titleBar. So I want to make that component public.It seems like I'm almost there but I'm getting a "TypeError: Error #1009: Cannot access a property or method of a null object reference." when it tries to add an event listener to the titlebar.
here is my extended panel
package custClass{
import mx.containers.Panel;
import mx.core.UIComponent;
public class ExtPanel extends Panel{
[code]....
And then this in the AS:
newPanel.getTitleBar().addEventListener(MouseEvent.ROLL_OVER,over);
Still getting the same error.
since i started using Flash Builder (Flex 4) i could see that it can auto-generate some handlers for example if i have a <s:Button> and i add a click="" i get a hint of "Generate Click Handler" and when i click Enter he writes this code:
Code:
protected function button1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
}
Now i knew about public and private things(functions/vars) and if a function was public i could execute it form outside of the class and inside. But if it was private i could only execute it from inside of the class and i couldn't execute it from outside of the class.
So anyway, what does "protected" mean? what does it do?I was thinking that if i load a SWF in my app I can go inside of that SWF and execute functions, read values from variables, or anything like that ... and that seems like a security problem ... So i was wondering if the "protected" keyword could help me with this security problem. And if not, I would like to know what is it good for
For developing simple games with the Flex SDK, what are the consequences of using a Canvas object, versus a UIComponent object, as a drawing surface? Are there performance issues with either one? Are the methods generally the same? Searching around, it seems that most sample code I've found uses UIComponent. Is this just customary, or are there reasons?
I already know one odd difference - I had developed a simple Pong game using:
public class MyGameCanvas extends UIComponent
and then decided to replace UIComponent with Canvas. This caused the line to fail:
[Code]...
However, I have to confirm something, being new to Flex and the various terminology. I'm presuming that people mean I should not be using MXML for games, when they said Flex SDK. Since I thought the Flex SDK was what provided the compiler that generates .swf files. Otherwise, where/how would I even compile AS3?
Assuming that's the case, then my question would be about the suitability of using both MXML and AS3 for (simple) games. Based on what I've read about both, it seemed like the intended use of them was MXML for the interface elements, and AS3 for everything else. Is the overhead that bad for MXML?
I have a BaseComponentClass that I am using as the class that all my custom components extend.For some reason, none of my custom components show up at runtime. I am not getting any compile or runtime errors either.I am implementing all the protected UIComponent methods.[code]The Button never shows up at runtime.
View 3 RepliesI have a NumericStepper declared as a UIComponent:
<![CDATA[
private var component:UIComponent;
component = new NumericStepper();
]]>
I need to change the .maximum value of the NumericStepper but due to the UIComponent not having a .maximum property the following code fails with the error: 1119: Access of possibly undefined property maximum through a reference with static type mx.core:UIComponent.
component.maximum = 11;
how would I define a property in this scenario?
I currently am trying to add a custom class which subclasses UIComponent to both a tree and a canvas, but when I try to re-order the tree by dragging I get this error:[code]When I do not add the UIComponent to the canvas, this error does not occur, anyone have any knowledge as to why this happens?
View 2 RepliesExtremely frustrated with this. I've created a simple class that extends the UIComponent. I create an instance of this class in a parent class and utilise the 'addChild' method to add it to the parent. I've overridden the 'updateDisplayList' method of the extended UIComponent to add my own drawing routine using the 'graphics' object.
My problem occurs when I start attempt to change any of the following properties (x , y , width, height) either directly or using 'move' or 'setActualSize' because the UIComponent will no longer display - prior to changing any of these properties the object displays fine. I know the object is still there, the 'updateDisplayList' method is still being called (as I'm calling 'invalidateDisplayList' after each change) and it correctly reports the changes.
I'm trying to drag an item from a datagrid and drop it onto a UIComponet. Basically I just want the UIComponent to know that something has been dropped onto it and allow it to access the data of the dropped item.
I thought just listening for the drop event would do it but it seems not.
I found lots of documentation on dragging from one IList to another but nothing for this.
<mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="init(event)" dragDrop="itemDropped(event)">
I added a MXML component in flex and selected the base as UIComponent. I want to make it accessible so that automated testing tools can Access it. I am using TestComplete for automated testing. As TestComplete uses Microsoft Accessibility classes. Now it treat my component as the Graphics.
View 3 RepliesI'm removing an UIComponent but parts of it last being visible. It redraws only when I move mouse around or something. I tried to do validateNow() on its parent, tried to do setTimeout(validateNow, 100) but it doesn't help. When I call it by setTimeout it seems these artifacts shown more rarely but it doesn't solve a problem in all cases. Please guide me someone to read about validateNow(), how it works and how to make these things correctly.
The code is below:
protected var bubble: SpeechBubble;
// creation
bubble = new SpeechBubble();
[Code]....