get width of dynamically created custom uicomponent

浪尽此生 提交于 2019-12-11 11:19:20

问题


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.

So my question is, how to create custom UIComponent that placed dynamically, and get to know the width and height of it.

thanks


edit:

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.


回答1:


If you're inheriting from UIComponent, rather than from one of its subclasses, you'll probably want to make sure you're implementing the measure() method, among others. Check out the Flex docs here for more information on implementing your own UIComponents -- there's a good bunch of info to read here, but it's all stuff you should probably know if you're deriving from UIComponent directly:

http://www.adobe.com/livedocs/flex/3/html/help.html?content=ascomponents_advanced_3.html

Hope it helps! You might also try posting a little code, just so we have something more specific to go on. But chances are, you're just not implementing something you should be in order to retrieve those values. (And your instinct is correct -- you shouldn't have to dig into mx_internal in order to get what you need.)




回答2:


Maybe this works?

component.getExplicitOrMeasuredWidth() 
component.getExplicitOrMeasuredHeight()


来源:https://stackoverflow.com/questions/1131486/get-width-of-dynamically-created-custom-uicomponent

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!