C:... \ HandleXML.as,第28行1120:访问未定义的属性processXML。
为什么?...这不是我的Document类,但是在这个类中没有任何调用。它在我的文档课中有用,但是我试图将文档类分成多个类。无论我读什么,有多个课程对我来说仍然很奇怪。
package {
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
import flash.xml.*;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.net.FileReference;
import flash.net.FileFilter;
public class HandleXML {
public static var mapXML:XML;
public var saveXML:XML;
public var file:FileReference;
public var fileLoader:URLLoader;
public var saveFile:FileReference;
public function HandleXML()
{
// constructor code
}
public static function UseGeneric()
{
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("Maps/TestMap.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
}
public function loadFileDialogue():void
{
file = new FileReference();
var xmlFileTypes:FileFilter = new FileFilter("XML (Maps/*.xml)", "Maps/*.xml;");
file.browse();
file.addEventListener(Event.SELECT, selectFile);
}
public function selectFile(e:Event):void
{
file.addEventListener(Event.COMPLETE, loadFile);
file.load();
}
function loadFile(e:Event):void
{
fileLoader = new URLLoader();
fileLoader.load(new URLRequest("Maps/"+file.name));
fileLoader.addEventListener(Event.COMPLETE, processXML);
}
public function processXML(e:Event)
{
mapXML = new XML(e.target.data);
ParseIntoArray();
}
public function SaveFile():void
{
BuildSaveXML();
saveFile = new FileReference();
saveFile.save((saveXML), "SavedXML.xml");
}
public function BuildSaveXML()
{
var xmlOutput:String = "<Map>" +
"<MapWidth>" + mapXML.MapWidth + "</MapWidth>" +
"<MapHeight>" + mapXML.MapHeight + "</MapHeight>" +
"<ROW>" + Engine.mapArray.toString()+"</ROW>" +
"</Map>";
saveXML = new XML(xmlOutput);
}
public function ParseIntoArray()
{
var tempArray:Array = new Array();
var tempStr:String = mapXML.ROW.toString();
tempStr = tempStr.replace(/<ROW>/g, "");
tempStr = tempStr.replace(/<\/ROW>/g, "");
tempArray.push(tempStr.split(","));
for(var i:int = 0; i < mapXML.MapHeight; i++)
{
Engine.mapArray[i] = [];
for(var j:int = 0; j < mapXML.MapWidth; j++)
{
Engine.mapArray[i].push(tempArray[0].shift());
}
}
}
}
}
答案 0 :(得分:0)
正如您所指出的那样,UseGeneric
函数在不应该被声明为静态时为:
public function UseGeneric()
{
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("Maps/TestMap.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
}