Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 列出容器中的所有元素_Apache Flex_Actionscript_Flex4 - Fatal编程技术网

Apache flex 列出容器中的所有元素

Apache flex 列出容器中的所有元素,apache-flex,actionscript,flex4,Apache Flex,Actionscript,Flex4,我想列出容器中的所有控件(按钮、数据网格等) 这可以工作,但给了我一个警告:变量“comp”没有类型声明。 for (var i:int = 0;i<this.numElements;i++) { var comp = this.getElementAt(i); trace(comp.id); } 在我的脑海里,当我收到编译器的警告时,那是因为我没有按预期的方式做某事 是否有其他方法可以引用id属性?我缺少一个方法,即使是一种完全不同的方法,也可以遍历所有控件?将其键入u

我想列出容器中的所有控件(按钮、数据网格等)

这可以工作,但给了我一个警告:变量“comp”没有类型声明。

for (var i:int = 0;i<this.numElements;i++)
{
    var comp = this.getElementAt(i);
    trace(comp.id);
}
在我的脑海里,当我收到编译器的警告时,那是因为我没有按预期的方式做某事


是否有其他方法可以引用id属性?我缺少一个方法,即使是一种完全不同的方法,也可以遍历所有控件?

将其键入
ui组件。组件将扩展这个类。(fl.controls components和mx.core components都扩展了UIComponent类)

将其键入
UIComponent
。组件将扩展这个类。(fl.controls components和mx.core components都扩展了UIComponent类)

IVisualElement接口没有为“id”声明getter。假设您尝试检索的所有元素都是UIComponent,则必须强制转换为UIComponent。或者更好的方法是使用IAdvancedStyleClient,它是为UIComponent的“id”属性声明getter函数的接口

var comp:IAdvancedStyleClient = getElementAt(i) as IAdvancedStyleClient;
if (comp) trace(comp.id);

我在这里测试
comp
是否为
null
,以防位于“I”位置的组件实际上不会实现IAdvancedStyleClient。

IVisualElement接口没有为“id”声明getter。假设您尝试检索的所有元素都是UIComponent,则必须强制转换为UIComponent。或者更好的方法是使用IAdvancedStyleClient,它是为UIComponent的“id”属性声明getter函数的接口

var comp:IAdvancedStyleClient = getElementAt(i) as IAdvancedStyleClient;
if (comp) trace(comp.id);

我在这里测试
comp
是否为
null
,以防位于“I”位置的组件实际上不会实现IAdvancedStyleClient。

这不是获取元素的另一种方法吗

for each(var comp:UIComponent in this)
trace(comp.id);

这不是获取元素的另一种方式吗

for each(var comp:UIComponent in this)
trace(comp.id);

仅供参考-在Flex 4中,作为UIComponent转换可能不是您想要的,因为诸如Rect或BitmapImage之类的图形元素不从UIComponent扩展。@Steven这些将被视为控件?我不确定“控件”的定义是什么。在Flex4中有一些元素(IVisualElement),它们是UIComponent、GraphicElement、SpriteVisualElement或UIMovieClip对象。UIComponent是按钮、列表、数据网格等组件的基类。GraphicElement是纯视觉形状(如矩形、椭圆、直线、位图图像等)的基类。SpriteVisualElement是支持编译时优化FXG图形的基类。UIMovieClip是使用Flex Component Kit for Flash创建的组件的基类。仅供参考-在Flex 4中,作为UIComponent转换可能不是您想要的,因为诸如Rect或BitmapImage之类的图形元素不从UIComponent扩展。@Steven这些将被视为控件?我不确定“控件”的定义是什么。在Flex4中有一些元素(IVisualElement),它们是UIComponent、GraphicElement、SpriteVisualElement或UIMovieClip对象。UIComponent是按钮、列表、数据网格等组件的基类。GraphicElement是纯视觉形状(如矩形、椭圆、直线、位图图像等)的基类。SpriteVisualElement是支持编译时优化FXG图形的基类。UIMovieClip是使用Flex组件工具包为Flash创建的组件的基类。