Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Общие вопросы

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 22.08.2004, 18:44
Enelin вне форума Посмотреть профиль Отправить личное сообщение для Enelin Найти все сообщения от Enelin
  № 1  
Enelin

Регистрация: Aug 2004
Сообщений: 13
По умолчанию Проблема с 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");

Старый 22.08.2004, 22:32
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 2  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
вот
Вложения
Тип файла: zip duplicatemovieclip.zip (4.8 Кб, 122 просмотров)

Старый 22.08.2004, 23:04
Enelin вне форума Посмотреть профиль Отправить личное сообщение для Enelin Найти все сообщения от Enelin
  № 3  
Enelin

Регистрация: Aug 2004
Сообщений: 13
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)


Последний раз редактировалось Enelin; 22.08.2004 в 23:07.
Старый 23.08.2004, 00:01
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 4  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
attachMovie тоже возвращает reference на приатаченный мувик, лучше ентим reference-ом и пользоваться при переопределении параметров, хотя на вкус и цвет...

Старый 23.08.2004, 00:03
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 5  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
Цитата:
Оригинал написал(а) Enelin
и объясните вообще разницу между написанием:
Код:
function newFunction(var)
и
newFunction = function(var)
тут просто второй синтаксис устаревший

Старый 23.08.2004, 00:18
Enelin вне форума Посмотреть профиль Отправить личное сообщение для Enelin Найти все сообщения от Enelin
  № 6  
Enelin

Регистрация: Aug 2004
Сообщений: 13
Стало вроде проясняться...

Тут ещё маленький вопрос : если мы приписываем в ту же функцию (пора бы уже класс сделать ) обработчик события типа
Код:
   
newButton.onPress = function () 
	{
  		gotoAndStop(1);
		this.removeMovieClip();
	}
это у меня работает в тестовом примерчике, а в чуть усложнённом никак не хочет мувик удаляться... вот в этом и вопрос собственно (скарее всего с путём проблема, я так думаю, хотя указываю абсолютный - пофигу)...

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

Старый 23.08.2004, 02:14
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 7  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
Цитата:
Оригинал написал(а) Enelin
Код:
   
newButton.onPress = function () 
	{
  		gotoAndStop(1);
		this.removeMovieClip();
	}
это у меня работает в тестовом примерчике, а в чуть усложнённом никак не хочет мувик удаляться... вот в этом и вопрос собственно (скарее всего с путём проблема, я так думаю, хотя указываю абсолютный - пофигу)...
ты там попробуй перед this.removeMovieClip(); сделать trace(this); тогда точно поймёшь правильно ты задаёшь путь или нет

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

Старый 23.08.2004, 02:33
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 8  
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
this, висящий на кнопке, указывает на таймлайн, в котором эта кнопка находится.

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

Старый 23.08.2004, 10:30
Enelin вне форума Посмотреть профиль Отправить личное сообщение для Enelin Найти все сообщения от Enelin
  № 9  
Enelin

Регистрация: Aug 2004
Сообщений: 13
Цитата:
Оригинал написал(а) FreeLander

ты там попробуй перед this.removeMovieClip(); сделать trace(this); тогда точно поймёшь правильно ты задаёшь путь или нет
trace(this); даёт как то и ожидалось _level0.newButton, но _level0.newButton.removeMovieClip(); не хочет удалять этот клип, блин.

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


Последний раз редактировалось Enelin; 23.08.2004 в 10:34.
Старый 23.08.2004, 11:20
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 10  
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
Цитата:
Оригинал написал(а) Enelin
вот это стоит попробывать, я думаю, главное чтобы стабильно везде работало.
да оно в любом случае стабильно пашет, проверено не раз

Создать новую тему   Часовой пояс GMT +4, время: 18:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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