PDA

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


lex7310
04.03.2009, 22:02
надо что бы при нажатие на клип он дублировался, при нажатие на его дубль создается еще один и тд. до бесконечности

делаю так
on (release)
{
xxx=random(100);
name=random (500);
_root.aa.duplicateMovieClip(name, this.getNextHighestDepth(), {_x:xxx, _y:20});
}

создается только один дубль, при последущем нажатие он удаляется и создается повторно...

Котяра
04.03.2009, 22:07
ёк.
сделай клип - назначь ему класс,
сделай функцию, которая определяет
функцию onRelease, в которой дублицируется объект и назначается эта функция.

ЗЫЖ код должен быть оформлен, а за on (release) сам побью лопатой вмето модеров.

iNils
04.03.2009, 22:10
lex7310, для оформления своего кода надо использовать теги

Котяра
04.03.2009, 22:14
если не хочешь заморачиваться с классами, то делай так:
ВНУТРИ клипа пропиши код:
this.onRelease = function()
{
var xxx=random(100);
var name=random (500);
this.duplicateMovieClip(name, this.getNextHighestDepth(), {_x:xxx, _y:20});
}
ps6 не проверенно - набрано здесь.

lex7310
04.03.2009, 22:38
lex7310, для оформления своего кода надо использовать теги
сорри, буду знать
если не хочешь заморачиваться с классами, то делай так:
ВНУТРИ клипа пропиши код:
this.onRelease = function()
{
var xxx=random(100);
var name=random (500);
this.duplicateMovieClip(name, this.getNextHighestDepth(), {_x:xxx, _y:20});
}
ps6 не проверенно - набрано здесь.
сделал так, тот же эффект - клип дублируется только один раз (
если не тяжело объясните поподробнее (опыта в AC почти нет( )

Заранее спасибо.

aksios
05.03.2009, 06:53
Ну положим, name как имя Вашей переменной не лучшее решение...
upd: Ошибочка с кешем вышла.

KiL33
05.03.2009, 08:39
ВНУТРИ клипа пропиши код:
this.onRelease = function()
{
var xxx=random(100);
var name=random (500);
this.duplicateMovieClip(name, this.getNextHighestDepth(), {_x:xxx, _y:20});
}
ps6 не проверенно - набрано здесь.

Глупость посоветовали…

за on (release) сам побью лопатой вмето модеров.
Чем вам не угодил on (release) в AS2?

По Теме
var ShCount:Number = 0;
btn.onPress = dup;
function dup():Void {
ShCount++;
clip.duplicateMovieClip("clip",ShCount);
clip._x = 100+(random(100));
clip._y = 100+(random(100));
}

lex7310
05.03.2009, 09:23
Ну положим, name как имя Вашей переменной не лучшее решение...
А вот так оно как не странно работает:

Код AS1/AS2:
on (release)
{
xxx=random(100);
nam=random (500);
this.duplicateMovieClip(nam, this.getNextHighestDepth(), {_x:xxx, _y:20});
}
да не работает он так!, дублируется только один раз при последующем нажатие дубль удаляется и создается снова, а мне надо что бы создавался новый -3,4,5,6,..

aksios
05.03.2009, 09:31
Без комментариев.
on (release)
{
xxx=random(100);
nm=random (500);
duplicateMovieClip(this, nm, nm);
[nm]_x=xxx;
[nm]_y=20;
}

lex7310
05.03.2009, 10:05
Без комментариев.

Код AS1/AS2:
on (release)
{
xxx=random(100);
nm=random (500);
duplicateMovieClip(this, nm, nm);
[nm]_x=xxx;
[nm]_y=20;
}
во!!) спасибо, а почему у меня не получалось?)

iNils
05.03.2009, 10:06
Чем вам не угодил on (release) в AS2?AS2 это в первую очередь классы, а не типизация. И если вы напишите в классе реализацию on (release) (вот каламбуры и рождаются), я вам медаль повешу.

KiL33
05.03.2009, 11:09
AS2 это в первую очередь классы, а не типизация. И если вы напишите в классе реализацию on (release) (вот каламбуры и рождаются), я вам медаль повешу.

Это понятно, но я сомневаюсь что автор темы юзает классы.:)

Котяра
05.03.2009, 11:14
on (release)
{
xxx=random(100);
nm=random (500);
duplicateMovieClip(this, nm, nm);
[nm]_x=xxx;
[nm]_y=20;
}

Очень удивлен что код работает. т.е. создается дубликат клипа вместе с прописаными на нем экшенами?

Прописывая ВНУТРИ клипа (на таймлайне) мы фактически расширяем класс мувиклипа для этого мувика.
прописывая экшены как on () - мы изменяем методы конкретного экземпляра, поэтому мне удивительна работоспособность вашего кода.

iNils
05.03.2009, 11:21
Это понятно, но я сомневаюсь что автор темы юзает классы.:)Это не важно. У on (release) нет ни одного плюса на фоне кода в кадре, а только одни минусы. Например:
- Код много кратно дублируется, и как следствие, нельзя централизованно менять код, так как у каждого объекта своя копия.
- Программно нельзя переназначить/удалить обработчик события.
- Различная область видимости у кнопок и мувиклипов, и это часто забывают и путают.

Котяра
05.03.2009, 11:28
У on (release) нет ни одного плюса на фоне кода в кадре, а только одни минусы. Например:

- Различная область видимости у кнопок и мувиклипов, и это часто забывают и путают.

Тоже самое относится и к коду в кадрах - путают.
Кнопки я вообще не использую.
Кстати, если кто не в курсе:
Делаем мувик с 4 кадрами с метками _up,_over,_down,_hitПСтавим на первом кадре stop() и назначаем любой мышиный обработчик.
Клип будет вести себя как кнопка (все переходы между кадрами, флэш Иде пропишет автоматически)

iNils
05.03.2009, 11:39
Тоже самое относится и к коду в кадрах - путают.Не понял.

Котяра
05.03.2009, 11:50
Не понял.
- Различная область видимости у кнопок и мувиклипов, и это часто забывают и путают.

То же самое можно сказать и про код в кадрах - путают области видимости. Поэтому нельзя это отнести к преимуществам кода в кадрах. Я совсем не сторонник on () .. просто для торжества справедливости)))))

iNils
05.03.2009, 13:17
То же самое можно сказать и про код в кадрах - путают области видимости. Поэтому нельзя это отнести к преимуществам кода в кадрах. Я совсем не сторонник on () .. просто для торжества справедливости)))))Я говорил о том, что this при описании в on ссылается на два совсем разных объекта, если писать его на мувиклипе и кнопке. Если же описать для них же (мувиклипа и кнопки) код в кадре, то this будет ссылаться на один и тот же объект. Так причем тут проблемы с головой?