Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как дублировать клип несколько раз? (http://www.flasher.ru/forum/showthread.php?t=122213)

lex7310 04.03.2009 22:02

Как дублировать клип несколько раз?
 
надо что бы при нажатие на клип он дублировался, при нажатие на его дубль создается еще один и тд. до бесконечности

делаю так
Код AS1/AS2:

on (release)
{
        xxx=random(100);
        name=random (500);
_root.aa.duplicateMovieClip(name, this.getNextHighestDepth(), {_x:xxx, _y:20});       
}

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

Котяра 04.03.2009 22:07

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

ЗЫЖ код должен быть оформлен, а за
Код AS1/AS2:

on (release)

сам побью лопатой вмето модеров.

iNils 04.03.2009 22:10

lex7310, для оформления своего кода надо использовать теги [code][/code]

Котяра 04.03.2009 22:14

если не хочешь заморачиваться с классами, то делай так:
ВНУТРИ клипа пропиши код:
Код AS1/AS2:

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

Цитата:

Сообщение от iNils (Сообщение 803114)
lex7310, для оформления своего кода надо использовать теги [code][/code]

сорри, буду знать
Цитата:

Сообщение от Котяра (Сообщение 803116)
если не хочешь заморачиваться с классами, то делай так:
ВНУТРИ клипа пропиши код:
Код AS1/AS2:

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

Цитата:

Сообщение от Котяра (Сообщение 803116)
ВНУТРИ клипа пропиши код:
Код AS1/AS2:

this.onRelease = function()
{
        var xxx=random(100);
        var name=random (500);
this.duplicateMovieClip(name, this.getNextHighestDepth(), {_x:xxx, _y:20});       
}

ps6 не проверенно - набрано здесь.

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

Цитата:

Сообщение от Котяра (Сообщение 803116)
за
Код AS1/AS2:

on (release)

сам побью лопатой вмето модеров.

Чем вам не угодил on (release) в AS2?

По Теме
Код AS1/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

Вложений: 1
Без комментариев.
Код AS1/AS2:

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:
Код 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

Цитата:

Сообщение от KiL33 (Сообщение 803185)
Чем вам не угодил on (release) в AS2?

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

KiL33 05.03.2009 11:09

Цитата:

Сообщение от iNils (Сообщение 803193)
AS2 это в первую очередь классы, а не типизация. И если вы напишите в классе реализацию on (release) (вот каламбуры и рождаются), я вам медаль повешу.

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

Котяра 05.03.2009 11:14

Код AS1/AS2:

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

Цитата:

Сообщение от KiL33 (Сообщение 803200)
Это понятно, но я сомневаюсь что автор темы юзает классы.:)

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

Котяра 05.03.2009 11:28

Цитата:

Сообщение от iNils (Сообщение 803203)
У on (release) нет ни одного плюса на фоне кода в кадре, а только одни минусы. Например:

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

Тоже самое относится и к коду в кадрах - путают.
Кнопки я вообще не использую.
Кстати, если кто не в курсе:
Делаем мувик с 4 кадрами с метками
Код AS1/AS2:

_up,_over,_down,_hit

ПСтавим на первом кадре
Код AS1/AS2:

 stop()

и назначаем любой мышиный обработчик.
Клип будет вести себя как кнопка (все переходы между кадрами, флэш Иде пропишет автоматически)

iNils 05.03.2009 11:39

Цитата:

Тоже самое относится и к коду в кадрах - путают.
Не понял.

Котяра 05.03.2009 11:50

Цитата:

Сообщение от iNils (Сообщение 803207)
Не понял.

Код:

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

iNils 05.03.2009 13:17

Цитата:

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


Часовой пояс GMT +4, время: 11:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.