PDA

Просмотр полной версии : как зааттачить много мувиклипов с одним именем?


ZЭТ
17.08.2005, 12:25
Я пробую аттачить мувиклип, но мне надо чтоб их было много. При каждом щелчке должен появляться новый мувиклип . Короче говоря мне надо сделать пулемет... Я пробовал и аттачить и дуплячить, но постояно появляется один мувиклип.
ship.onMouseDown = function() {
blam.duplicateMovieClip("blam_", 1, {_x:ship._x, _y:ship._y});
//во втором кадре обэекта blam происходит действие полета патрона.
blam_.gotoAndPlay(2);
};

Past_Or
17.08.2005, 12:44
с одним именем никак

i=1;
ship.onMouseDown = function() {

i++;
blam.duplicateMovieClip("blam_"+i, 1, {_x:ship._x, _y:ship._y});
//во втором кадре обэекта blam происходит действие полета патрона.
blam_.gotoAndPlay(2);
};

только так, птмчт с одним именем в одном клипе или в руте не может быть двух клипов с одним именем.

ZЭТ
17.08.2005, 12:54
не так тоже не получается, я пробовал. Может к мувиклипу надо обращаться через квадратные скобы?
["blam_"+i].gotoAndPlay(2); чето типа того или как?

KidsKilla
17.08.2005, 13:39
эт чегойт не может с одним именем много мувиков быть? =)
оч даже может.
на одном уровне нельзя. эт да:

i=1;
ship.onMouseDown = function() {
i++;
blam.duplicateMovieClip("blam_"+i, i, {_x:ship._x, _y:ship._y});
//во втором кадре обэекта blam происходит действие полета патрона.
blam_.gotoAndPlay(2);
};

обращаться так: this["blam_"+i].gotoAndPlay(2);

что-то где-то так...

iNils
17.08.2005, 13:40
имя не так важно :) если будут два клипа с одним именем, то обращаясь по этому имени, вы получите доступ только к тому клипу который был создан позднее. но если вы этот клип удалите, то получите доступ к первому.
так, о чем это я?
важнее глубина, на одной глубине два клипа существовать не могут

i=1;
ship.onMouseDown = function() {

i++;
blam.duplicateMovieClip("blam_"+i, i, {_x:ship._x, _y:ship._y});
//во втором кадре обэекта blam происходит действие полета патрона.
this["blam_"+i].gotoAndPlay(2);
};

PS не успел :)

ZЭТ
17.08.2005, 13:53
млин, внатуре... на разной глубине все пашет, спсбо.

motor4ik
17.08.2005, 14:00
имя не так важно :) если будут два клипа с одним именем, то обращаясь по этому имени, вы получите доступ только к тому клипу который был создан позднее. но если вы этот клип удалите, то получите доступ к первому.


А вот и ответ на тот вопрос, на который ты не смог смоделировать ситуацию!!! когда swapDepths () не реагирует! он реагирует ,но на последний созданый мувик, просто есть еще один мувик который был создан вручную с таким же именем ,по - этому вот такая батва ребята!!

все таки ответы находятся , короче если вы создаете мувик в первом кадре программно, а на втором кадре у вас тот же мувик но вручную...при переходе на второй кадр вам будет казаться что все зашибись! но вот нет swapDepths () работать будет некорректно, так как у вас 2 мувика с одинаковым именем!! так что обяз надо удалить программный мувик при переходе с 1го на 2й кадр!!! это ребята ботва еще та, я с ней намучался, это хорошо когда у вас 2 кадра и 2 мувик а когда их сотни отследить это сложнее! и это Реальная трабла! удачи :)

KidsKilla
17.08.2005, 14:05
а не проже ли все мувики в массив загонять? и никаких проблем.

ZЭТ
17.08.2005, 14:39
а мне надо еще чтоб они удалялись, кода достигали границы раб поля, - это действие должно быть в функции или нет??

D12
18.08.2005, 00:58
_root.onMouseDown = function() {
_root.attachMovie("gun","gun1"+i,i);
_root["gun1"+i]._x = _root.ship._x
_root["gun1"+i]._y = _root.ship._y
_root["gun1"+i].onEnterFrame = function() {
this._x+=12;
if (this._x>450){
this.unloadMovie();
}
}
i++
}


всегда рад помочь ))) особенно геймерам ;)