我知道如何訪問ActionScript 2中的外部XML文件,但是在此項目中,要求SWF文件必須是自包含的。在編譯/發佈時將XML嵌入到Flash文件中?
我保留XML的原因是因爲它是另一個程序的輸出,所以如果我可以保留XML,那麼我會避免手動輸入數據。
我知道AS3中有[嵌入]元標記,但我很遺憾地被AS2卡住了。
有沒有一種方法來嵌入XML文件,或者在編譯/發佈時使用ActionScript 2讀取數據並將其作爲變量存儲?
我知道如何訪問ActionScript 2中的外部XML文件,但是在此項目中,要求SWF文件必須是自包含的。在編譯/發佈時將XML嵌入到Flash文件中?
我保留XML的原因是因爲它是另一個程序的輸出,所以如果我可以保留XML,那麼我會避免手動輸入數據。
我知道AS3中有[嵌入]元標記,但我很遺憾地被AS2卡住了。
有沒有一種方法來嵌入XML文件,或者在編譯/發佈時使用ActionScript 2讀取數據並將其作爲變量存儲?
經過廣泛的測試後,我發現我的限制太多,僅僅依靠Flash來解決我的問題。
因爲我僅限於AS2,我不能使用外部XML,這意味着...
所以我做的是創建一個單獨的HTML頁面,使用jQuery我加載目標XML文件並清理Flash文件不使用的所有數據,並將結果吐出到div上,正確地轉義角括號和引號,這樣,結果XML數據足夠小,可以放入舞臺上的文本框中,我可以將其用作輸入。
所以工作流程變爲:
Generate XML -> Open HTML page -> Copy Cleaned XML -> Paste into Textfield in Flash -> Publish
這可能是又邁進了一步,但HTML/JavaScript可以運行在任何地方,是我的用戶漂亮的新空房禁地簡單,所以它最終是考慮我的侷限一個很好的解決方案。
在AS3中,你可以硬編碼XML(不使用嵌入語法):
private var myXml:XML = <root_node>
<child_1 />
<child_2 />
</root_node>;
我只是做了一個快速search for AS2,它看起來像這樣的(注意鏈接的文章提到了pit-你可以做到這一點下降或兩個):
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.parseXML("<root_node><child_1 /><child_2 /></root_node>;");
不幸的是,由於問題狀態AS2是一個硬性要求。嘗試了parseXML路由,但顯然我的XML文件太大了,它似乎超載了parseXML函數,我甚至無法將其定義爲字符串變量。也不能使用文本字段作爲XML輸入,最大字符數限制爲65535(2^16-1),我懷疑所有變量都有16位限制。 – Shaw 2012-07-19 00:04:37
然後,我應該將該XML轉換爲JSON(或純AS)對象並進行編譯。您將獲得性能提升,而不是在運行時解析XML。 – 2012-07-19 06:47:07
事情是我實際上爲不一定技術熟練的用戶創建XML-> SWF工作流程。 XML是由另一個程序生成的,所以他們不需要擔心,但是如果他們必須將XML編譯成JSON/AS對象,我可能會問得太多。 – Shaw 2012-07-19 19:22:23