Добавление узла к трассировке XML не приводит к появлению данных - PullRequest
0 голосов
/ 29 августа 2009

У меня пока есть такой скрипт действий:

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();


xmlLoader.addEventListener(Event.COMPLETE, LoadXML);

xmlLoader.load(new URLRequest("nav.xml"));


function LoadXML(e:Event):void {

xmlData = new XML(e.target.data);
ParseBooks(xmlData);

}

function ParseBooks(bookInput:XML):void {

trace("XML Output");
trace("------------------------");
trace(bookInput);
trace(bookInput.project);


}

Это загружает xml, назначает его для bookInput и отслеживает его, но когда я пытаюсь отследить bookInput.project или bookInput.button или что-либо, кроме bookInput, данные не возвращаются, кто-нибудь знает, почему это так?

XML;

    <button label="test1">

        <project path="http://www.google.com">


        </project>

    </button>

    <button label="test2">

        <project path="projects/drawing/DrawingApp.swf">

        </project>

    </button>

    <button label="test3">

        <project path="projects/text/DrawingApp.swf">

        </project>

    </button>

 </buttons>

1 Ответ

0 голосов
/ 02 сентября 2009
<project path="projects/text/DrawingApp.swf">
</project>

совпадает с

<project path="projects/text/DrawingApp.swf" />

это пустой узел ... ну вроде. Текстовый узел пуст, значения узла нет. В as3, если вы отслеживаете узел, у которого нет дочерних элементов, предполагается, что вы хотите XML, а не XMLList, поэтому он отслеживает значение узла. попытайтесь отследить проект. @ path вместо простого проекта.

bookInput.project не правильный путь bookInput это кнопки bookInput.button - это XMLList всех ваших узлов кнопок и т. д.

поэтому, если вы хотите добраться до первого узла, вы можете попробовать

bookInput.button[0].project.@path;

или посмотрите главу xml в существенном ActionScript 3.0, или вы можно легко отсканировать эту замечательную статью , чтобы начать.

Извините, я пишу это в спешке, надеюсь, что в этом есть смысл.

...