PDA

Просмотр полной версии : Очередная проблема с onEnterFrame'ом при дублировании


Molotoff
10.02.2006, 17:23
Есть исходные "таскаемые" мувики 'mov' и 'movo' (можно еще больше, это неважно), которые состоят из 'drag'-"таскальщика", и 'mc'-клипа, который 'drag' таскает.
Для мувиков надо написать ф-ию, которая будет дублировать в мувиках 'mc' (с координатами +100) и при "таскании" исх. мувов, дубль соответственный (дублированные 'mc') тоже должен двигаться(повторять движения).

Проблема возникает, когда задаю onEnterFrame!

(повторяю, мувиков может быть больше)

мой код:

i=1;
function dub(clip:MovieClip) {
clip.mc.duplicateMovieClip("dubl"+i,i+1);
clip["dubl"+i]._y=clip.drag._y+100;
clip["dubl"+i]._x=clip.drag._x+100;

this.onEnterFrame=function(){
clip["dubl"+i]._y=clip.drag._y+100;
clip["dubl"+i]._x=clip.drag._x+100;
}
i++;
}

dub(mov);
dub(movo);



Как под onEnterFrame'ом обратиться к соответствующим клипам?

Leezard
10.02.2006, 17:58
this.onEnterFrame=function()...
Как ты думаешь, к чему ты привязываешь onEnterFrame?
Правильно к руту. К тому месту откуда вызываешь функцию.

Molotoff
10.02.2006, 18:28
? у меня и так 'mov' и 'movo' лежат в корне...
Не понял короч, что конкретно не правильно?

olegn
10.02.2006, 20:27
Похоже ты дважды присваиваешь для _root функцию onEnterFrame. И второе назначение убивает первое. Может, это не относится к твоей неисправности, но в этом коде выглядит явной недоработкой.

Molotoff
10.02.2006, 20:38
у меня кстати под onEnterFrame'ом 'clip["dubl"+i]' вообще не видно почему-то...

KidsKilla
10.02.2006, 20:45
а у тебя есть this.clip?

может поможет, может нет:
http://webdream.iatp.org.ua/flash/flash3/ch15_03.htm

Molotoff
10.02.2006, 21:07
ок. посмотрю.
Завтра скажу помогло-нет!

Molotoff
11.02.2006, 20:56
не помогло, там не то...
Вопрос состоит в том, почему ранее определенные переменные не видно в onEnterFrame'е?

DmitryMV
11.02.2006, 21:47
Привяжи onEnterFrame к клипам.
i=1;
function dub(clip:MovieClip)
{
clip.mc.duplicateMovieClip("dubl"+i,i+1);
clip["dubl"+i]._y=clip.drag._y+100;
clip["dubl"+i]._x=clip.drag._x+100;
clip.onEnterFrame=function()
{
this["dubl"+i]._y=this.drag._y+100;
this["dubl"+i]._x=this.drag._x+100;
}
i++;
}
dub(mov);
dub(movo);

Molotoff
12.02.2006, 01:00
не вкатило... хм

KPaul
12.02.2006, 12:30
Для наглядности инкремент:
i=1;
function dub(clip:MovieClip)
{
var mc = clip.mc.duplicateMovieClip("dubl"+i,i+1);
mc._y=clip.drag._y+100;
mc._x=clip.drag._x+100;
clip.onEnterFrame=function()
{
//this["dubl"+i]._y=this.drag._y+100;
//this["dubl"+i]._x=this.drag._x+100;
mc._x++;
}
i++;
}
dub(mov);
dub(movo);

DmitryMV
12.02.2006, 14:05
не вкатило... хм
Что у те бя не вкатило? Не работает или не понял?

Molotoff
12.02.2006, 14:59
да не работает как надо...