Показать сообщение отдельно
Старый 07.04.2009, 22:38
sereg вне форума Посмотреть профиль Отправить личное сообщение для sereg Найти все сообщения от sereg
  № 1  
Ответить с цитированием
sereg

Регистрация: Mar 2009
Сообщений: 19
про омлет не вопрос.и все вроде бы хорошо, но у меня вопрос вот какой
создал класс.в нем прописал помимо конструктора две функции.
1) читает xml
2) просто заполняет какой-то левый массив левыми данными

объявляю переменную моего класса, сначала вызываю функцию чтения xml, и потом уже вызываю вторую левую функцию.
смотрю через trace - сначала он выполнил вторую функцию, после нее только прочитал xml, не смотря на то, что xml идет раньше....

почему так?!

сам класс
Код AS1/AS2:
class Diagram extends MovieClip {
 
	public var arr:Array = new Array();
	public var len;
 
	public function Diagram(parent:Object) {
		parent.createEmptyMovieClip("mc", 20);
		//оси
		parent.mc.lineStyle(2, 0x000000, 100);
		parent.mc.moveTo(40, 50);
		parent.mc.lineTo(40, 350);
		parent.mc.moveTo(40, 350);
		parent.mc.lineTo(570, 350);
	}
	public function setData(parent:Object) {
		var my_xml = new XML();
		my_xml.ignoreWhite = true;
		my_xml.onLoad = function(ok) {
			if (ok) {
				len = my_xml.childNodes[0].childNodes.length;
				trace(len);
			}
		};
		my_xml.load("data1.xml");
	}
 
	public function testArray() {
		for (var i = 0; i<10; i++) {
			this.arr[i] = "Hello"+i;
		}
		trace(len);
	}
}
как вызываю
Код AS1/AS2:
var d:Diagram = new Diagram(_root);
d.setData(_root);
d.testArray();