Actionscript 3 Flex getElementByName
我知道Flex中没有getElementByName这样的函数,但我现在也知道,您可以这样做[“object_id”]来获取您所在应用程序的元素。 把一个元素放在另一个元素里面怎么样? 我试过制作Actionscript 3 Flex getElementByName,actionscript-3,apache-flex,getelementsbytagname,Actionscript 3,Apache Flex,Getelementsbytagname,我知道Flex中没有getElementByName这样的函数,但我现在也知道,您可以这样做[“object_id”]来获取您所在应用程序的元素。 把一个元素放在另一个元素里面怎么样? 我试过制作元素[“id”]?但在我的try-catch中,它总是运行“catch”部分=\ 那么:如何在另一个元素中获取一个元素,使其id处于动态创建的字符串形式 提前感谢这取决于您试图访问的元素类型 可以通过调用访问子显示对象: element.getChildByName(“名称”) 公共变量(可设置为也包含
元素[“id”]
?但在我的try-catch中,它总是运行“catch”部分=\
那么:如何在另一个元素中获取一个元素,使其id处于动态创建的字符串形式
提前感谢这取决于您试图访问的元素类型
element.getChildByName(“名称”)代码>
元素[“name”]代码>
或者简单地使用:element.name
请注意,如果在导出设置中选中了“自动声明阶段实例”选项,则拖动到Flash IDE中阶段的任何实例都将被删除。这就是为什么使用
这个[name]
有效的原因 这取决于您试图访问的元素类型
element.getChildByName(“名称”)代码>
元素[“name”]代码>
或者简单地使用:element.name
请注意,如果在导出设置中选中了“自动声明阶段实例”选项,则拖动到Flash IDE中阶段的任何实例都将被删除。这就是为什么使用
这个[name]
有效的原因 如果我理解正确,您是在寻求一种方法来获取Flex应用程序中具有特定名称的所有“元素”
下面是一个示例(Flex 3):
您会注意到
getDisplayObjectsByName()
是static
。它所做的只是遍历显示列表(深度优先)并选择具有指定名称的所有对象。如果我理解正确,您是在寻求一种方法来获取Flex应用程序中具有特定名称的所有“元素”
下面是一个示例(Flex 3):
您会注意到
getDisplayObjectsByName()
是static
。它所做的只是遍历显示列表(深度优先)并选择具有指定名称的所有对象。如果要在中查找元素,可以使用以下功能:
static function getElementByName(group:GroupBase, name:String):IVisualElement {
const child:DisplayObject = group.getChildByName(name);
const index:int = group.getChildIndex(child);
return group.getElementAt(index);
}
如果要在中查找元素,可以使用此函数:
static function getElementByName(group:GroupBase, name:String):IVisualElement {
const child:DisplayObject = group.getChildByName(name);
const index:int = group.getChildIndex(child);
return group.getElementAt(index);
}
我说的是FLEX,没有舞台。我还讨论了UIComponents对象,它没有子对象,但是有元素。仅供参考,我现在正在使用一个TabNavigator。好吧,这是一个很好的信息-也许你应该在下次的问题中添加这个。无论如何,请查看UIComponent和tada的信息:它是DisplayObjectContainer的一个子类。。。在Flex中,即使您不幸地使用DisplayObjectContainers,也不确定addChild getChild removeChild是否有效……我在这里谈论的是Flex,没有阶段。我还讨论了UIComponents对象,它没有子对象,但是有元素。仅供参考,我现在正在使用一个TabNavigator。好吧,这是一个很好的信息-也许你应该在下次的问题中添加这个。无论如何,请查看UIComponent和tada的信息:它是DisplayObjectContainer的一个子类。。。在Flex中,即使您不幸地使用DisplayObjectContainers,也不确定addChild getChild removeChild是否有效……我现在无法测试它,但我提前向您表示感谢!顺便说一句,我只想在第一级的children中得到“foo”元素。所以只要VBox=)我想我只需要删除最后一个if语句,对吗?;)@AndreaSilvestri我已经将名称更改为“getDisplayObjectsByName”,以反映我们正在寻找的是
DisplayObject
s,而不是“元素”(如XML元素),并且还添加了一个recurse
参数,默认为true
。我现在不可能测试它,但我提前感谢您!顺便说一句,我只想在第一级的children中得到“foo”元素。所以只要VBox=)我想我只需要删除最后一个if语句,对吗?;)@AndreaSilvestri我已将名称更改为“getDisplayObjectsByName”,以反映这样一个事实,即我们正在查找DisplayObject
s,而不是“元素”(如XML元素),并且还添加了一个recurse
参数,默认情况下该参数为true
。
static function getElementByName(group:GroupBase, name:String):IVisualElement {
const child:DisplayObject = group.getChildByName(name);
const index:int = group.getChildIndex(child);
return group.getElementAt(index);
}