我发现问题出现在哪里,但无法理解纠正问题的原因和方法。
它适用于其他框架,但差别不大: 一些成功删除后无法删除的XML:
<work name="New Work Title 14" img="" logo="" link="" image=""></work>
<work name="New Work Title 15" img="" logo="" link="" image=""></work>
.... etc
来自相同脚本的框架中的XML:
<person name="New Object Name 8" poz="" mail="" thumb="" img=""/>
第一个跟踪和第三个跟踪在一些成功删除后给出相同的值:
function deleteWork(){
trace(siteDataXML[Work_Node].length()) // freezes on ~10
trace(delete siteDataXML[Work_Node][Work_List.selectedIndex]) //always true
trace(siteDataXML[Work_Node].length()) // freezes on ~10
Work_DP.removeItemAt(Work_List.selectedIndex); //
trace("dp ", Work_DP.length) // decreases as it should
debug("Data Deleted. Autosaving...")
Work_Save();
}
可以是</work>
的原因,但在其他测试文件中它会删除类似的xml节点。
如果我生成没有</work>
的xml,则删除工作正常。
任何想法? 希望有人可以提供帮助。
我想我找到了原因。
Flash自动转换
<work name="New Work Title 14" img="" logo="" link="" image=""></work>
到
<work name="New Work Title 14" img="" logo="" link="" image="" />
此删除后不删除节点。
我添加了<![CDATA[]]>
:
<work name="New Work Title 14" img="" logo="" link="" image=""><![CDATA[]]></work>
但为什么会这样呢?
答案 0 :(得分:1)
截止日期的原因我不能花很多时间在它上面,并通过重新设置管理面板页面脚本来绕过它。找到更好的方法。
我正在尝试在新的干净文件上模拟该问题,但不能......
我认为解决方案应该是将<![CDATA[]]>
添加到xmls以防止对话。如果所有XML都保留相同的格式,则删除应该可以正常工作。
P.S。 当文本转换为xml并保存时,cdata将转换为转义格式。使用cdata保持htmlText格式的方法是:
someXML.someNode[i] = new XML('<test aaa="aaaa" bbb="bbbb" ccc="cccc"><![CDATA['+someTextField.htmlText+']]></test>')
不是这样:
someXML.someNode[i] = '<![CDATA['+someString+']]>'