我目前被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