не могу никак понять, почему компилятор не входит в цикл for each.

переменная externalXML не пуста.

Код AS3:
package com
{
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class XMLengine
{
public var externalXML:XML;
public var loader:URLLoader
public var request:URLRequest;
public function XMLengine(xml:String)
{
loader = new URLLoader();
request = new URLRequest(xml);
}
public function Load():void
{
loader.addEventListener(Event.COMPLETE, onComplete);
loader.load(request);
}
function onComplete(event:Event):void
{
loader = event.target as URLLoader;
if (loader != null)
{
this.externalXML = new XML(loader.data);
this.Compile();
trace(this.externalXML.toXMLString());
}
else
{
trace("loader is not a URLLoader!");
}
}
public function Compile():void
{
var buttonTotal:Number;
for each (var property:XML in externalXML.item)
{
//var q:int = String(property.@quantity);
var p:String = String(property.button);
buttonTotal++;
trace(p);
}
trace(buttonTotal);
}
}
}
естественно, что он сразу вываливает в output значение buttonTotal:
NaN
вот такая XML грузится в externalXML

Код:
<objects>
<object>
<button> 1st Floor </button>
<img>./a1.jpg</img>
<zoom cx="40" cy="40" w="30" h="30"> Kitchen </zoom>
<zoom cx="140" cy="40" w="30" h="30"> Living Room </zoom>
</object>
</objects>