Цитата:
Сообщение от 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);
}