ActionScript 3.0 :: Why UIComponent.drawNow Must Be Called In Custom CellRenderer
Feb 16, 2009
I recently used fl.controls.List to implement a list with custom CellRenderer.I did it by implementing ICellRenderer:[code]Inside MyRenderer I added a fl.controls.Button, then set its label. However, when the List is rendered (by dynamically adding item into its dataProvider), the button body is not rendered, only the label is rendered. When I move my mouse over it, the button is then properly rendered.I found this strange, then tried use myButton.drawNow() in constructor. The problem seem to be solved. Now the button is rendered, but the label is not at the very center of the button (it's a bit towards right). Then, when I move my mouse over it again, the label move to the center, and everything's ok.This may be a minor problem, but I just wonder why this is happening. Why must drawNow() to be called? Why the label is not properly placed even when drawNow() is called?
View 5 Replies
Similar Posts:
Sep 14, 2010
I have a Game-sprite representing a game room with up to 3 players, it works ok. And would like to populate a List component with those Game's, based on an XML data coming from a socket.I've prepared a simple test case demonstrating my problem -ListTest.fla (should have a List component in its Library):
import fl.data.*;
import fl.controls.*;
stop();
[code].....
View 1 Replies
Feb 4, 2009
I have a combobox that I need to style with colors from xml. I call this XML file in the same class that has my combobox instance and break out the color I need to a var.
I then use MyCellRenderer (a class that extends CellRenderer) to style the drop down list items like so:
Code:
myComboBox.dropdown.setStyle('cellRenderer', MyCellRenderer );
This all works perfectly with a hardcoded color already inside the MyCellRenderer class.
My problem is when I instantiate MyCellRenderer and try to pass the color through I get the following error when I click the combobox open:
Code:
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()
at fl.controls::List/drawList()
at fl.controls::List/draw()
at fl.core::UIComponent/callLaterDispatcher()
Is it possible to instantiate a class that extends CellRenderer? If not why not?
how can I pass a variable to my custom CellRenderer class?
View 1 Replies
Dec 14, 2010
The code below sets up a List object in the main controller class that uses a custom cell renderer (CustomListCell class). the CustomListCell class creates a Button object for the cell that will be used to delete itself from the List's DataProvider. How can I properly access the parent List object from its custom cell renderer?
//Controller Class
private function createList():void {
provider = new DataProvider(data);
list = new List();
list.width = 200;
list.height = 400;
[Code] .....
View 2 Replies
Aug 25, 2011
I have a component ObjectHolder which extends UIComponent that holds many children UIComponents. However, after using addChild() to add these children to ObjectHolder, its width and height remain zero. Is it possible for the UIComponent to automatically expand to the size of its containing children components?
public class ObjectHolder extends UIComponent
{
public function ObjectHolder()
[code].....
View 2 Replies
Dec 24, 2010
I created custom component that not derived from UIComponent. And I want to make live preview. It's works fine - I can change properties and live preview shows them immidiatally. But there's some problem - if I override 'width' and 'height' properties and run application - the width and height that I changed on properties panel in IDE are not kept. Properties that changed through component inspector saves. So, how can I save width and height of my component changed through properties panel?
View 4 Replies
Aug 3, 2010
Extremely 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.
View 1 Replies
Apr 18, 2011
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 Replies
Jul 15, 2009
I have some custom components, that derived from UIComponent. I overloaded the updateDisplayList so they have custom look. I've created a layouter that lays out these custom components, but to place them correctly, I have to know the custom componets width, height. They are created dynamically. After all of them created (creationCompleted event fired for every), i try to laying out them, but width/height property is still 0. I am also tried to add them to a canvas, before the layout process.
how to create custom UIComponent that placed dynamically, and get to know the width and height of it.
With the use of the mx_internal namespace I can set width and height (using the internal $width and $height fields), and it looks like it is working. But not so clean/good solution.
View 2 Replies
Nov 19, 2010
I've created a custom uicomponent and whenever the browser or its specific container is resized, a repaint occurs but the contents of the component get drawn again and again and again...So, if I move the container I'll end up with multiple circles drawn on top of each other but offset depending upon where the container is when the repaint occurs.My updateDisplayList code is below.Do I need to do some sort of clear so that it doesn't contiuously getting duplicated like this?
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
trace("height: " + parent.height);
trace("width: " + parent.width);
[code].....
View 1 Replies
Sep 21, 2011
I have a base class for buttons which handles button basics like mouse listeners etc.Now I'm trying to extend it to also have the possibility to store an event (yes event, not event type) that is supposed to be dispatched on click.So I have my CustomEvent (extending Event) that I pass into the base class and store it with type Event.Outside, in the event listener I have an event argument typed as CustomEvent.First time I click it works fine and event is CustomEvent traces true in the event handler.But the second time I click, event is CustomEvent traces false and I get the "type coercion failed" error (cannot convert Event to CustomEvent):
Code: TypeError: Error #1034: Type Coercion failed: cannot convert flash.events::Event@29d3b7e1 to com.package.events.CustomEvent.
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.package.display.buttons::ButtonBase/onClick()
If I trace event is CustomEvent in the base class before the event is dispatched it always traces true.So it seems something happens to the event in the dispatcher functions, but what boggles me is that the base class always sees the event as CustomEvent while the event listener thinks it is CustomEvent first time only.
View 1 Replies
Jun 4, 2010
i'm trying to cast a MovieClip to a custom Class that extends MovieClip called MovieClipExt
ActionScript Code:
package {
import flash.display.MovieClip;
[Code]....
...but sadly returns null instead of a MovieClip converted to MovieClipExt
what should i change to make this work?
View 3 Replies
May 20, 2005
I'm trying to create a custom function called "turnOn" with (name) as the function variable(?is that how I should refer to it?). This function is an if/else statement that will be called through an on(release) button event.
The if has a bunch of && conditions, if true gotoAndStop on frame two of specified movie clip. But I'm trying to write it put it in a function so that I don't have to put all this code on every single button. So i'm using the "name" function variable to specify the movieclip that should be affected by button action, but it won't work.[code]...
View 3 Replies
Aug 18, 2009
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 Replies
Jul 14, 2011
I have a Main.swf application that loads another application called GridServices.swf. The GridServices.swf contains a DataGrid that has a custom CellRenderer class associated with ithen I run GridServices.swf by itself, it runs just fine and uses the wordWrapCellRenderer class that I made.hen I load the GridServices.swf file into Main.swf, I'm getting this error all of the time:
TypeError: Error #2007: Parameter child must be non-null.
at flash.display:isplayObjectContainer/addChildAt()
at fl.controls::BaseButton/drawBackground()
[code].....
View 0 Replies
Apr 15, 2010
I'm used to item renderers in Flex but inexperienced with Flash AS3 components.I want to create a List that renderers items like this:
1) a slider
2) a couple of text fields that my designer can place and style as he likes
It's a survey form. I expect to grab the _listData.owner and dispatch the user inputs and bubble them up to the form.
1) drag a list onto the stage
2) create a symbol in the library with the base class of com.blah.skins.renderers.SurveyItemRenderer
3) Export this class as SurveyItemRenderer
4) set the list's cellRenderer style to SurveyItem renderer
5) give the list data to show
I tried using CellRenderer, but the class seems to reject being associated with a symbol (and I could not find any examples of CellRenderer being used that way), so SurveyItemRenderer implements ICellRenderer.When I run it, other library symbols and graphics shows up in the renderer--WITH THE EXCEPTION of the slider. Other Flash components that I put on the stage do not show up either, until you roll over (Button), or if they have text in the them (Label). Slider never shows up.
Components will show up on the stage, just not in the SurveyItemRenderer. WHY NOT? I feel like I'm missing something basic. Here is the class, minimal because I'm still testing:
Code:
public class SurveyItemRenderer extends MovieClip implements ICellRenderer
{
protected var _listData:ListData;
protected var _data:Object;
protected var _selected:Boolean;
[code]...
View 1 Replies
Apr 12, 2010
I want to load an external swf called 'signs.swf' into an empty mc called 'signholder'.
var loadit2 = new Loader();
loadit2.load(new URLRequest("signs.swf"));
signholder.addChild(loadit2);
Everything works. Cool. But, I now want to target something within the signs.swf. How do I do it though? What is the path? Do I have to give the child of signholder an instance name? Everything I try fails.
If I wanted the root timeline of the external swf to gotoAndPlay(2) for example,...would i say...
signholder.loadit2.gotoAndPlay(2) ???
var wow:MovieClip = loadit2.content as MovieClip;
wow.gotoAndPlay(2) ????
View 3 Replies
Oct 30, 2007
I am having issues with startDrag(). I have a movie clip called circle. Inside circle, I have a movie clip called circleFill and another called circleOutline.onEnterFrame, this movieClip is duplicated 4 times.
When I use this:
private function onPressNow(event:MouseEvent):void
{
startDrag();
}
IT DRAGS ALL 4 MOVIECLIPS.
[Code]...
how can I make it drag my movieClip called circle? (meaning both circleFill and outlineFill)
View 8 Replies
Oct 24, 2011
i have a box called infoBox that contains a text field called caption. infoBox expands on mouse-over. When it does so, I do not want the text in caption to scale up - I want it to stay at 11 pt. So far my code to prevent this from happening is not working:How do I fix this?[URL]..
View 2 Replies
Jun 9, 2009
which I can't seem to solve. I'm using a cellRenderer to display icons in a dataGrid. All works fine until I type in the command myDg.hScrollPolicy = "auto". Once I issue that command, the icons stop displaying. If I remove that line, all works well once more.
View 3 Replies
Aug 10, 2010
I need to put a combobox in a column of a datagrid. The user just need to select a value from the existing combox items.I know I need to use a custom cellrenderer. Please see my current attempt below.This attempt successfully inserts a combobox into the datagrid, BUT without any data in the combobox. In fact, when I click on the combobox in the datagrid, it is the same as a normal combobox on the stage without a dataProvider. In other words, it doesn't even open.Thus, I need to know how to modify my cellrenderer to correctly add the data to the combo and accept changes made by the user when selecting a value from the combobox.[code]
View 1 Replies
Nov 5, 2009
The following test code adds an asterisk in front of the node labels of a Tree component.It works in a trivial Flash document but displays blank labels in a much more complex one. In both cases the library contains a Movie Clip with name, linkage identifier and AS 2.0 class all set to "MyTreeCell".
Scene:Layer:Frame:
createClassObject(mx.controls.Tree, "myTree", 1);
myTree.dataProvider = '<node label="Mail"><node label="In"/><node label="Out"/></node>';
myTree.cellRenderer = "MyTreeCell";
[code]....
View 0 Replies
Mar 23, 2009
The following code is the cell renderer for for a ComboBox in a DataGridColumn. It works fine when setting the comboBox's data in the constructor. There's a problem using the red code below. If the DataGrid row is not already selected the dropdown list appears but is empty.Any ideas? If the row is not already selected, the selectedItem is being set causing a STATE invalidation after the list a created. I'm not sure how to prevent this.
Code:
package
{
[code].....
View 1 Replies
Apr 25, 2011
I have a datagrid whose data keeps updating quite frequently.On every update, I need to change the cell color of only those cells whose data has changed.That too, if the updated value is less than the older value then the cell color should change to RED else, GREEN.
I have tried using labelFunction, cellrenderer, etc. But to no avail.By no means, I am able to access the present data in the cells to compare it with the new data.I have added the sample classes in the attachment. To get them to work, just create an fla with a DataGrid & a Button components in its library & mention 'del' as its document class.Just run the fla & click on the two buttons on stage to see the values in the price column changing.
View 2 Replies
Sep 22, 2011
I am developing an application and making use of a list component. I have set the List to use a custom cellrenderer.I need the list to have rounded corners but the problem is that where my custom cell corners are transparent I can see a default white cell underneath instead of the background.I found this discussion seemed to be relevant http:[url]......But when I add this function to my cellrenderer class I get compiler error
override public function set data(data:Object):void{
super.data = data;
Set the default skin to be invisible. This is a bit easier than creating a new skin, if your goal is to hide the white background.
this.skin.visible = false;
}
1119: Access of possibly undefined property skin through a reference with static type MarksCellRenderer.
how to hide the defualt white cell background?
View 2 Replies
Nov 3, 2009
how I can manage to give single words inside a DataGrid-CellRenderer a different color than defined by the TextFormat for that CellRenderer? It's not how to get these single words, it's how to use more than one color inside one cell...
View 1 Replies
Aug 28, 2008
Not to certain how many people may need this script, but lo and behold I had need of it for my project. So, here's my script on how to add a movie clip to a Datagrid Cell via CellRenderer1) Create an Actionscript file (*.as) and call it IconCellRenderer2) Put the following code inside that file:
Code:
package
{
[code].......
View 4 Replies
Dec 31, 2011
I'm working with a component that extends List. It works fine unless it's loaded into another swf.
It cannot find the library symbols. I know the symbols exist in the loaded swf.
View 4 Replies
Nov 2, 2009
I am attempting to combine two AS files that are acting as cellRenderers individually but not simultaneously for cells in a datagrid in a Flash document I have created. The first styles the cells to have alternating row colors and the second allows for non-text content to be rendered. The issue is whenever I attempt to combine them the document reports errors with "super" and "override" among others.
[Code]...
View 1 Replies
Jul 22, 2009
I have a wordpress based site that stores information about an image in a database field called "background" in a table called "wp_postmeta".The 'loader' gets an url such as "/thisImage/background.swf"The "background.swf" should somehow display "background.jpg" instead but since I've changed the field name in the database (from background to temp_background) it doesn't work.I pass variables to the "loader" swf and they are correct based on the new field name but it still isn't working.I need to know if there is anything in the .fla's (and therefore the .swfs) that is pointing to somewhere in the database hard-coded. Basically I need someone to look at them and tell me how they are working.
View 2 Replies