![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Привет! Если вас не затруднит, помогите разобраться... Вот простенький код:
function ap (){
i ++;
_root.attachMovie("mc", "mc" + i, _root.getNextHighestDepth(), {_x: Math.random()*550, _y: Math.random()*400});
}
r = setInterval (ap, 3000);
hero.onPress = function (){
this.startDrag ();
this.onEnterFrame = function (){
if (this.hitTest(this["mc"+i])){
delete this.onEnterFrame;
this["mc"+i].removeMovieClip ();
this.stopDrag ();
}
}
}
hero.onRelease = function (){
this.stopDrag ();
}
Последний раз редактировалось Волгоградец; 09.01.2008 в 17:00. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
this у вас -- это hero. А мувик в _root аттачится.
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Абсолютный
Относительный Правильный var i:Number = 0;
hero.useHandCursor = false;
var mc:MovieClip;
function ap () {
i++;
mc = _root.attachMovie ("mc", "mc" + i, _root.getNextHighestDepth (), {_x:Math.random () * 550, _y:Math.random () * 400});
}
r = setInterval (ap, 3000);
hero.onPress = function () {
this.startDrag ();
this.onEnterFrame = function () {
if (this.hitTest (mc)) {
delete this.onEnterFrame;
mc.removeMovieClip ();
this.stopDrag ();
}
};
};
hero.onRelease = function () {
this.stopDrag ();
};
|
|
|||||
|
Ответ:
hero.onPress = function() {
this.startDrag();
this.onEnterFrame = function() {
if (this.hitTest(this._parent["mc"+i])) {
delete this.onEnterFrame;
this._parent["mc"+i].removeMovieClip();
this.stopDrag();
}
};
};
this._parent равносильно _root - именно туда аттачатся мувики. Дописано: ОПЕРЕДИЛИ более шустрые ребятки ![]() |
|
|||||
|
iNils, ты прав, задумано было для всех элементов проверку делать. Это я что-то напутал когда писал код.) Поэтому ход с присваиванием имени мувика переменной m не проходит. Просто я думал, что конструкция this["..."] - это как обособленный оператор что ли, который должен возвращать то, что в квадратных скобках независимо от расположения на временной диаграмме.
Вот, с вашей помощью сделал то, что нужно - на сцену аттачатся клипы и происходит проверка на столкновение с каждым из них; если столкновение было - клип удаляется (может кому пригодится): var i:Number = 0;
hero.useHandCursor = false;
var array:Array = new Array ();
function ap (){
i ++;
_root.attachMovie("mc", "mc" + i, _root.getNextHighestDepth(), {_x: Math.random()*550, _y: Math.random()*400});
array.push ("mc" + i);
}
r = setInterval (ap, 5000);
ap ();
hero.onPress = function (){
this.startDrag ();
this.onEnterFrame = function (){
for (k in array){
if (this.hitTest(_root[array[k]])){
trace (array[k]);
_root[array[k]].removeMovieClip ();
array.splice(k, 1);
trace (array.length);
trace (array + "\n");
}
}
}
}
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|