我目前被Vector
类困惑。 我写了一个漂亮的XML
给TypedClass解析器。精美的工作,没有错。 UNTIL一位同事注意到我们得到了Vector.<Number> to Vector.<*>
的转换错误。Actionscript 3矢量数不扩展矢量*
每个Vector
我曾经测试过所有延伸Vector.<*>
。
Vector.<Sprite>
,Vector.<String>
,Vector.<Point>
,Vector.<Boolean>
,Vector.<TextField>
,Vector.<CustomObject>
,等等等等等等他们。
<type name="__AS3__.vec::Vector.<String>" base="__AS3__.vec::Vector.<*>" isDynamic="true" isFinal="false" isStatic="false">
<extendsClass type="__AS3__.vec::Vector.<*>"/>
<extendsClass type="Object"/>
<accessor name="length" access="readwrite" type="uint" declaredBy="__AS3__.vec::Vector.<*>"/>
<accessor name="fixed" access="readwrite" type="Boolean" declaredBy="__AS3__.vec::Vector.<*>"/>
</type>
但是当我使用的describeType上Vector.<Number>
,Vector.<uint>
和Vector.<int>
。
<type name="__AS3__.vec::Vector.<Number>" base="Object" isDynamic="true" isFinal="true" isStatic="false">
<extendsClass type="Object"/>
<constructor>
<parameter index="1" type="uint" optional="true"/>
<parameter index="2" type="Boolean" optional="true"/>
</constructor>
<accessor name="length" access="readwrite" type="uint" declaredBy="__AS3__.vec::Vector.<Number>"/>
<accessor name="fixed" access="readwrite" type="Boolean" declaredBy="__AS3__.vec::Vector.<Number>"/>
</type>
现在我已经占了这3个向量作为单独甚至UINT和INT不会扩展Vector.<Number>
因为我本来期望。 而我的解析函数再次正确地适用于所有类型。但是我的困惑是为什么这是事实,为什么我找不到关于这个主题的任何文档。
有趣。我认为这是由于原始类型造成的,但它看起来好像[字符串和布尔值也属于该类别。](http://help.adobe.com/zh_CN/as3/learn/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f9c.html# WS5b3ccc516d4fbf351e63e3d118a9b90204-7f88) –
嗯,从技术上说,我的函数需要一个类,然后测试该类是否为'Vector'类型。当然,Vector的Number和其他任何东西实际上都属于它,但是当我尝试将其传递给我为Vector设置的变量的类的新实例分配给它时。 “我曾经大败过。正如我在问题中所说的那样,我已经解释了这一点。我们很少使用Vector。 ',只是很讨厌,我不得不单独解释它们。这很好,很整洁。 :-( – WORMSS