PDA

Просмотр полной версии : dublicateMovieClip - не понимаю


romulko
14.03.2007, 01:38
Доброй ночи, коллеги.
Пожалуйста, помогите написать простейший код дублирования клипа. Вот пример того, что я сваял вручную, размещая мувики трещин в новом слое и на новом кадре инкрементируя единичку, и, на событии onMouseDown перемещался на один кадр вперед, чем запуская новую трещину (желательно кликнуть с интервалом пару секунд и только четыре раза ударить, так как там больше нет мувиков трещин) –

http://www.ifrastudio.com/test/111.swf


А надо, чтобы мувик трещины просто дублировался в том месте, где был сделан удар молотком (то есть, после дублирования привязывались координаты).
Пожалуйста, помогите мне написать код дублирования, а то я ниак не могу сам понять, как эта функция работает – dublicateMovieClip
В моей книге по программингу только одна страница по этой функции, потому, не могу разобраться, что и как.
Уже второй день в депрессии…
Спасибо большое!

this.create
14.03.2007, 01:42
Не проще вставлять в место удара мувик трещины из библиотеки?

CorC
14.03.2007, 10:03
http://livedocs.adobe.com/flash/8/main/00002452.html
а именно
(копируемый клип).duplicateMovieClip("(имя нового)", "(глубина)", (свойства));
хотя свойства необязательно

LeXi42006
14.03.2007, 10:39
Я это так сделал:

var i=0;
d = "mc"
_root.onMouseDown = function () {
duplicateMovieClip("_root.mc", "mc"+i, i)
_root[d+i]._x = _root._xmouse
_root[d+i]._y = _root._ymouse
i++
}

где мувик трещины - "mc"

CorC
14.03.2007, 11:20
duplicateMovieClip("_root.mc", "mc"+i, i)


жуть просто :)

romulko
14.03.2007, 13:11
Ребята, спасибо что помогли... но, я ничего не могу сделать - не дублирует он мувик :(
ПОжалуйста, скажите, в чем зедсь дело???
Пробывал и код LeXi42006 и разбиратся в хелпе CorC'а - ничего не помогло....
ВОт, что-то сваял - но там только один мувик создается. после удара, он удаляется и появляется новый. А нужно, чтобы все сохранялись.
Исходинк в аттачменте.

CorC
14.03.2007, 14:00
Mouse.hide();
var i = 1;
onMouseMove = function () {
this.molotok._x = this._xmouse+70;
this.molotok._y = this._ymouse-200;
updateAfterEvent();
};
onMouseDown = function () {
this.molotok.gotoAndPlay("s1");
mc1=_root.mc.duplicateMovieClip("mc"+i, ++i);
_root.mc1._y = this._ymouse-220;
_root.mc1._x = this._xmouse-390;
updateAfterEvent();
};

лишь чуток переделал то :)
правда ошибочку вижу, но нестрашную...

З.Ы.: если ПКМ то hidemouse не помогает :)

romulko
14.03.2007, 14:47
уфф, наконец то, Все работает! ПАСИБА CorC.:yahoo:
Сваял уже сам код удаление мувика. Теперь я мастер! :bye:

romulko
16.03.2007, 02:33
Ребята, доброй ночи.
Стыдно, конечно, но опять не работает как надо - трещины образуются над молотком, хотя слой ниже него. Глубина молотка не та, что ли? Но ведь дубликат формируется ниже него, почему же трещина залазит поверх молотка?

И при дублировании больше 20-30 трещин флешка очень сильно начинает виснуть.

Ребята, пожалуйста, помогите советом – в чем здесь дело?
Исходник и мувик в архиве http://www.ifrastudio.com/test/Untitled-1.rar
Эту штуку делаю за спасибо, но вот усилий уже столько потратил, что даже страшно подумать….

CorC
16.03.2007, 10:17
Глубина молотка не та, что ли? Но ведь дубликат формируется ниже него
неправда, у молотка глубина отрицательная
а у трещин больше 0
лечится swapDepths'ом

И при дублировании больше 20-30 трещин флешка очень сильно начинает виснуть.

это если водить мышой по трещинам :)
Эту штуку делаю за спасибо, но вот усилий уже столько потратил, что даже страшно подумать….
за спасибо такие вещи не делают :)

З.Ы.: если нажать на морду, а потом не отпуская отвести молоток
и отпустить то трещина не удалиться, и остался баг с ПКМ

romulko
16.03.2007, 12:27
CorC - спасибо огромное за помощь. Все сделал как надо. Единое, что волнует – мувик болеет после 30 ударов висняком. Можно это как-то обойти, или лучше не заморачиваться?
Ибо это не смертельно, но если не трудно объяснить, почему оно висит, буду вдвойне благодарен.
Уменьшил fps до 24, уменьшил саму картинку трещины, убрал анимацию трещины (поначалу там была анимированная маска).

CorC
16.03.2007, 12:48
можно мувики по одному удлять если их больше определенного кол-ва