我是OOP AS 3.0的新手,所以..我有一个问题。
我有两个文件Main.as
和LoadTheXML.as
在LoadTheXML
课程中我有loadTheXML
个函数,在sortXML
函数中,并且在那里我想要在picturePathList
<中使用数组Main.as
/ p>
在Main.as
中的
我有一个启动loadTheXML函数的代码:
var loadedXML:LoadTheXML = new LoadTheXML(urlVar);
所以...在Main.as我想写:
var rand:Number = Math.round(Math.random() * (a - 1));
var mainLoader:Loader = new Loader();
var mainRequest:URLRequest = new URLRequest(picturePathList[rand]);
mainLoader.load(mainRequest);
mainLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, mainLoaded);
function mainLoaded(e:Event):void {
mainPicPlacementX = (stage.stageWidth / 2) - (mainLoader.width / 2);
so on and so on....
}
如何从LoadTheXML类调用picturePathList数组。
感谢!!!
在这里我会把文件 - 请看,因为我不知道该怎么做以及如何...... The Files
我希望将上面提到的代码移到Mainc.as我想这会有更多逻辑,无论如何我想看看它是如何完成的..如果你找到一些教程我也想看到它..谢谢!
答案 0 :(得分:2)
通过getter方法公开访问LoadToXML
对象的picturePathList
属性:
public class LoadTheXML
{
private var _picturePathList:Array;
public function get picturePathList():Array
{
return _picturePathList;
}// end function
// ...
}// end class
答案 1 :(得分:1)
一般来说,AS3是异步的;这意味着,在进入第二个陈述之前,它不应该等待完成第一个陈述。
所以你应该监听一个事件对象来检查任务是否已经完成。您可以获得此EventDispatcher对象。
所以你应该在sortXML
函数中调度一个事件对象。
dispatchEvent ( new Event ( Event.COMPLETE ) );
和Main.as
。
private function init():void
{
loadedXML = new LoadTheXML(urlVar);
loadedXML.addEventListener ( Event.COMPLETE, handleXMLLoaded );
}
private function handleXMLLoaded (e:Event):void
{
var rand:Number = Math.round(Math.random() * (a - 1));
var mainLoader:Loader = new Loader();
var mainRequest:URLRequest = new URLRequest(loadedXML.picturePathList[rand]);
mainLoader.load(mainRequest);
.....
.....
}