2011-06-30 212 views
2

我有我的自定义组件,例如几个标签。我想传递给我的组件值,它将被分配给标签的ID。将变量分配给MXML组件ID

代码:

<fx:Script> 
     <![CDATA[ 
      [Inspectable] 
      [Bindable] 
      public var test:String = "asd"; 
     ]]> 
</fx:Script> 
<s:Label id="{test}" text="etc"/> 

错误:{}测试是不是一个有效的标识符

我甚至可以做这样的事情?

+0

请问为什么?这样做有什么意义? –

回答

6

不,你不能。你必须明白,当你写这样

<s:Group> 
    <s:Label id="myLabel" /> 
</s:Group> 

MXML组件会生成ActionScript代码像

public class MyClass extends Group { 
    public var myLabel:Label; 
} 

(请注意,我非常这里过分简单化的代码传达的最重要的部分)。

正如你可以看到你的'id'实际上是一个属性名称。你不能在运行时更改属性的名称吗?

+1

我有希望,也许有一些方法可以动态生成属性的名称 - 我知道一种可能的语言。但不幸的是不在这里。 感谢您的帮助! – Deadman