Просмотр полной версии : Правильное обращение к мувиклипу в классе.
К примеру есть класс:
class Car extends MovieClip {
public static var mCar:MovieClip = null;
public function Car() {
mCar = this;
_alpha=50;
}
}
А во втором классе проверяю прикоснулся ли объект созданный в этом классе к машине.
if (this.hitTest(Car.mCar)) {
trace("Car");
}
Правильно ли так проверять ? Или надо как-то подругому объявлять всё ?
Вы понимаете, что mCar всегда ссылается только на последнею созданную машину?
Точно не подумал, а как это можно исправить ?
if (this.hitTest (ссылка_на_экземпляр_Car)) {
trace("Car");
}
Alex_beginner
30.06.2008, 22:12
А что Вам мешает сделать mCar обычным методом экземпляра класса, т.е убрать аттрибут static?!
Только вот я не вижу смысла в классе Car. Ведь когда Вы присваиваете ссылку на себя mCar, происходит восходящее приведение. Не лучше ли использовать простой MovieClip.
Oh! iNils как всегда опередил.
А что Вам мешает сделать mCar обычным методом экземпляра класса, т.е убрать аттрибут static?!Зачем? Ведь он сам на себя ссылается. :)
Alex_beginner
30.06.2008, 22:23
Тогда, простите я не совсем понимаю задачу.
Толи машин много и все они должны проверяться на hitTest, толи машина одна - Car.mCar и она должна тоже хиттеститься или может все по другому. Разъясните мне глупцу.:bb::mosking:
Машина одна, а много других объектов создаются в другом классе, в котором и проверялось
if (this.hitTest(Car.mCar)) {
trace("Car");
}
И у меня появился вопрос, как лучше написать и вообще правильно ли я пишу, оказалось, что нет...
И это получается, если я создаю экземпляр Car
var car:Car = Car(this.attachMovie("car", "car", this.getNextHighestDepth(), {_x:440, _y:200}));
То проверять надо так:
if (this.hitTest (_root.car)) {
trace("Car");
}
А если и тех и этих объектов много ?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.