Показать сообщение отдельно
Старый 09.08.2009, 12:13
  № 10  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Цитата:
Сообщение от kosmo_mishka Посмотреть сообщение
Прочитал тему ту тему, не очень понял про то как проверить успевают ли переменные иницилизироваться...
Ну если у тебя ship не клип (т.е. класс типа MovieClip), а обычный класс, тогда та тема действительно неуместна. Просто ты делаешь проверку на столкновение, и я подумал что ship - это клип.

Цитата:
Сообщение от kosmo_mishka Посмотреть сообщение
Класс ship
Код AS1/AS2:
           public var hitPoints:Array;
	public var i;
 
	function onLoad()
	{	
			var hitPoints = new Array();
			hitPoints.push({x:1, y:30});
			hitPoints.push({x:30, y:1});
			hitPoints.push({x:30, y:30});
			hitPoints.push({x:1, y:1});
           }
Я сам не силен в классах AS 2.0., но конструкторы в них точно не так создаются. А слово "var" вообще делает переменную локальной в области фигурных скобок "{ }". Так что у тебя получатся просто два массива.
Вот рабочий код:
Код AS1/AS2:
var	hitPoints = new Array();	//массив который потом можно будет присвоить переменной класса
	hitPoints.push({x:1, y:30});
	hitPoints.push({x:30, y:1});
	hitPoints.push({x:30, y:30});
	hitPoints.push({x:1, y:1});
 
function ClassShip():Void{	//типо такой конструктор
		this.hitPoints = hitPoints;
		//если не создавать массив отдельно, то можно сделать так
		//this.hitPoints = new Array();	
		//this.hitPoints.push({x:1, y:30});
		//this.hitPoints.push({x:30, y:1});
		//и т.д.
 
}
var ship= new ClassShip();//создаем экземпляр класса
//тест
for(i=0;i<ship.hitPoints.length;i++){
	trace("x="+ship.hitPoints[i].x+" y="+ship.hitPoints[i].y);
}