Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы (http://www.flasher.ru/forum/forumdisplay.php?f=10)
-   -   Проблема с duplicateMovieClip (http://www.flasher.ru/forum/showthread.php?t=62239)

Enelin 22.08.2004 18:44

Проблема с duplicateMovieClip
 
Собственно задача простецкая: есть мувик, хочется програмно его размножить. Вроде всё работает, но вот помещаю duplicateMovieClip в функцию - и всё, ничего не работает!!!

function PlaceButton(button, Caption)
{
button._visible = 0;
btnTest.duplicateMovieClip(button, "newButton");
newButton._x = 10;
newButton._y = 10;
newButton.Caption = "www";

}
PlaceButton(btnTest, "newButton");

FreeLander 22.08.2004 22:32

Вложений: 1
вот

Enelin 22.08.2004 23:04

FreeLander, у меня-то в итоге получилось, только код немного отличается от твоего, но будем знать как совсем правильно.

Сразу появился вопрос про attachMovie(). Идея та же, но зачем из библиотеки самому доставать, как при duplicateMovie(), было решено воспользоваться attachMovie(). Код работает, но может будут у кого какие замечания по написанию:

Код:

function PlaceButton(sLibName, sCaption)
{
      attachMovie(sLibName, "newButton", getNextHighestDepth());
      newButton._x = 100;
      newButton._y = 100;

      newButton.Caption = sCaption
}

PlaceButton("dButton", "WWW");

и объясните вообще разницу между написанием:
Код:

function newFunction(var)
и
newFunction = function(var)


FreeLander 23.08.2004 00:01

attachMovie тоже возвращает reference на приатаченный мувик, лучше ентим reference-ом и пользоваться при переопределении параметров, хотя на вкус и цвет...

FreeLander 23.08.2004 00:03

Цитата:

Оригинал написал(а) Enelin
и объясните вообще разницу между написанием:
Код:

function newFunction(var)
и
newFunction = function(var)


тут просто второй синтаксис устаревший

Enelin 23.08.2004 00:18

Стало вроде проясняться...

Тут ещё маленький вопрос :) : если мы приписываем в ту же функцию (пора бы уже класс сделать :confused: ) обработчик события типа
Код:

 
newButton.onPress = function ()
        {
                  gotoAndStop(1);
                this.removeMovieClip();
        }

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

да и как вот эта функция будет видеть в новом стиле написания кода???

FreeLander 23.08.2004 02:14

Цитата:

Оригинал написал(а) Enelin
Код:

 
newButton.onPress = function ()
        {
                  gotoAndStop(1);
                this.removeMovieClip();
        }

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

ты там попробуй перед this.removeMovieClip(); сделать trace(this); тогда точно поймёшь правильно ты задаёшь путь или нет

Цитата:

Оригинал написал(а) Enelin
[code]да и как вот эта функция будет видеть в новом стиле написания кода???
тут не могу претендовать на авторитетное мнение, но насколько я понял по последней моде макромедийной тут надо лепить новый объект - Listener, в котором будет прописана реакция на событие onPress, а потом приделывать этот Listener к кнопке.
имхо слишком хлопотно и в данном случае не слишком оправданно.

Antares 23.08.2004 02:33

this, висящий на кнопке, указывает на таймлайн, в котором эта кнопка находится.

Поэтому имя_кнопки.removeMovieClip() решит проблему.

Enelin 23.08.2004 10:30

Цитата:

Оригинал написал(а) FreeLander

ты там попробуй перед this.removeMovieClip(); сделать trace(this); тогда точно поймёшь правильно ты задаёшь путь или нет

trace(this); даёт как то и ожидалось _level0.newButton, но _level0.newButton.removeMovieClip(); не хочет удалять этот клип, блин.

Цитата:

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

FreeLander 23.08.2004 11:20

Цитата:

Оригинал написал(а) Enelin
вот это стоит попробывать, я думаю, главное чтобы стабильно везде работало.
да оно в любом случае стабильно пашет, проверено не раз


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

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