2013-04-16 31 views
0

是否有更好的方法来做到这一点:快递矢量。 <T>在MXML

<Area elements="{Vector.&lt;MyClass&gt;([N01, N02, N03])}"> 

Area.elements是MyClass类型的一个载体,我传递的元素是相同的MXML文件中定义的其他UI元素。

我的问题是,我必须使用&lt; & &gt;,它很凌乱。

有没有更好的办法,我可以做到这一点,我宁愿它表达出来是这样的:

<Area> 
    <elements> 
     N01, N02, N03 
    </elements> 
</Area> 

回答

1

我从来没有使用矢量做到了;但遵循标准的MXML约定;我希望它是这样的:

<Area> 
    <elements> 
    <Vector type="String"> 
     <String>N01</String>, 
     <String>N02</String>, 
     <String>N03</String>, 
    <Vector> 
    </elements> 
</Area> 

Documentation

+0

问题是我在Vector中传递的UIElements已经在文档中定义过了。在构建Vector时,我需要通过引用来传递它们,而不是创建新的实例。 – Drahcir

+0

您将更擅于在ActionScript中创建Vector。我想如果你在MXML中使用'object'标签;一个新的对象被创建。我认为你可以创建一个新的对象,并将你的引用作为属性传递给该对象。 – JeffryHouser

+0

谢谢,我想我会保持现在的样子。 – Drahcir

0

为什么不这样:

<fx:Script> 
    <![CDATA[ 
     [Bindable] 
     private var myVector:Vector.<MyClass> = new <MyClass>[N01,N02,N03]; 
    ]]> 
</fx:Script> 

<Area elements="{myVector}"> 

我知道你指定MXML,但是这是非常轻。

+0

我确实考虑过这个,但我认为它也会变得混乱。这些矢量中大约有200个,每个矢量在同一视图中形成一个“UIElement”和其他“UIElement”之间的链接。我认为将它们留在相关元素旁边会更加整洁。 – Drahcir

+0

现在我已经用我发布的相同方式完成了它们,这并不是我想象的那么糟糕。 – Drahcir

+0

如果你有200个不同的载体,你明确的硬编码,这听起来很杂乱。您可能需要考虑某种工厂来生成它们。我对你的细节一无所知,但听起来难以管理。 – NTyler