![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2009
Сообщений: 45
|
Здравствуйте!
Помогите с дублированием пожалуйста. Нужно дублировать мувиклип бесконечное число раз. И чтоб "клоны" сохраняли свойста "родителя". (код на frame, код на movieclip) Этот код копирует только один раз и не сохранет функции родительского клипа. Исходник: Скачать |
|
|||||
|
Модрон-ветеринар
|
Либо используют функцию
либо метод А у вас тут микс. Судя по записи, вы начинаете использовать метод, берете для клонирования logo_mc, а в скобках почему-то используете синтаксис функции. Исходник вы, кажется, не тот вложили, не видно связи вопроса и файла по ссылке. И еще: - что значит "бесконечное количество раз"? - не пишите код на мувиках. Последний раз редактировалось mooncar; 31.10.2009 в 13:21. |
|
|||||
|
Регистрация: May 2009
Сообщений: 45
|
Не, исходник тот) не logo_mc для клонирования а mc1 как в исходнике.
Бесконечное число раз: то есть из главного мувика клонируем сколько хотим таких же мувиков. Чтоб потом их можно было удалять. |
|
|||||
|
Модрон-ветеринар
|
Понятно. Так в чем вопрос-то, что не получается?
Ошибку записи я вам указал. |
|
|||||
|
Регистрация: May 2009
Сообщений: 45
|
А можешь конкретный код к моему исходнику написать? А то че то я пишу не получается(
|
|
|||||
|
Модрон-ветеринар
|
Там что-то вроде драм-машинки, синтезатора или какого-то звукового пазла ты задумал, так получается, надо целиком флешку писать.
Подсказать могу - функцию на даблклик перенести внутрь мувика нужно. Так, как сейчас организовано назначение функции на мувик, она не продублируется. Добавлено через 5 минут Запиши внутри мувика в кадре this.onMouseDown = function() { var time = 500; if (this.hitTest(_root._xmouse, _root._ymouse, true)) { trace(this); if (getTimer() - click < time) { trace("doubleClick"); bassloop = new Sound(); bassloop.attachSound("Drums"); bassloop.start(0,1); } else { click = getTimer(); } } }; this.onRollOver = function(){ this._alpha=70; } this.onRollOut = function(){ this._alpha=100; } Если нужно много раз дублировать - делай циклом. Например: for (i = 2; i < 11; i++) { mc1.duplicateMovieClip ('mc' + i, i, {_x: random(300), _y: random(300)}); } Если нужно звук разный - тоже доработать нужно будет. Например, передавать после дублирования во вновь созданный мувик текстовую ссылку-идентификатор определенного библиотечного звука. Последний раз редактировалось mooncar; 31.10.2009 в 14:13. |
|
|||||
|
Регистрация: May 2009
Сообщений: 45
|
mooncar,
или я не так выразился) или вы не совсем поняли) Вот мувик. Что мне нужно: нажимаешь на мувик и перетаскиваешь его (а то есть уже его копию) по рабочему столу. Потом можешь еще перетащить если надо. Все функции которые в исходнике, на мувике должны сохраняться на клонах. |
|
|||||
|
Модрон-ветеринар
|
Сделай что я написал и потесть.
Должно получится так, как я приложил. Естественно, я готовым не выдам от "сих" до "сих", подправь сам, основываясь на моих советах и приведенном коде. Главное - все нужные функции запиши внутри мувика и оставь как есть для простоты то, что там связано с драгом, написанное прямо на мувике, хотя это кривовато так делать. Последний раз редактировалось mooncar; 31.10.2009 в 19:08. |
|
|||||
|
Регистрация: May 2009
Сообщений: 45
|
Ну мне надо чтоб не сразу клоны появлялись) А чтоб нажал на главный мувик и из него перетащил клона. И чтоб клона можно было удалить. Чтоб с главного мувика можно было перетаскивать клонов бесконечное количество)
|
|
|||||
|
Модрон-ветеринар
|
Ясно. Как-то у вас сразу не задалось объяснить толком. Постарайтесь разобраться в данном коде, не то толку будет ноль и дальше самостоятельно вы не продвинетесь:
Про удаление подумайте сами (исп. removeMovieClip()) На главном таймлайне: var count:Number = 0; mc.onPress = function () { //нажали на оригинал count++; var item:MovieClip = mc.duplicateMovieClip ('mc' + count, count); item.startDrag(); item.onMouseUp = dragOff; //назначаем ф-ю на отпускание мыши, при этом копию уже можно было переместить }; function dragOff () { this.stopDrag (); if (this._x == mc._x && this._y == mc._y) { //если нажали на оригинал и отпустили мышку без переноса копии, то копия удаляется, как ее и не было, чтобы не мешала this.removeMovieClip(); } } Внутри этого оригинала должен быть видоизмененный ваш код: this.onMouseDown = function() { var time = 500; if (this.hitTest(_root._xmouse, _root._ymouse, true)) { trace(this); if (getTimer() - click < time) { trace("doubleClick"); bassloop = new Sound(); bassloop.attachSound("Drums"); bassloop.start(0,1); } else { click = getTimer(); } } }; this.onRollOver = function(){ this._alpha=70; } this.onRollOut = function(){ this._alpha=100; } Последний раз редактировалось mooncar; 31.10.2009 в 20:32. |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:24. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| movieclip , дублирование |
|
|