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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Feb 2009
Сообщений: 34
Smile Самоудаляющиеся клипы

Когда я писал на As2 я делал разные эффектики отдельными клипами, где в последнем кадре анимации писал

Код AS1/AS2:
this.removeMovieClip();
И когда нужно просто создавал нужный клип в нужном месте и забывал про него.

Теперь на AS3 пробую в последнем кадре писать

Код AS3:
parent.removeChild(this);
И клип на самом деле удаляется со сцены, но в лог пишется

Код AS3:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at Object2/frame10()
Мне не хочется для каждого эффекта создавать свой as файл. Можно ли из кадра корректно удалить самого себя?

Спасибо.

Старый 17.09.2009, 17:22
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 2  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Перед такими "штуками" убедитесь, что на него не осталось листенеров и ссылок, по которым к нему можно было бы обратиться.
Еще попробуйте проверку ввести:
Код AS3:
if (parent)
     parent.removeChild(this);
__________________
Стой! Опасная зона! Работа мозга!

Старый 17.09.2009, 17:36
Vogd вне форума Посмотреть профиль Отправить личное сообщение для Vogd Найти все сообщения от Vogd
  № 3  
Ответить с цитированием
Vogd

Регистрация: Feb 2009
Сообщений: 34
Спасибо!

Код AS3:
if (parent)
     parent.removeChild(this);
сработало, так же как сработало и

Код AS3:
parent.removeChild(this);
stop();
почему код этого кадра выполнялся дважды я не понял

Старый 17.09.2009, 17:44
MoHaX вне форума Посмотреть профиль Отправить личное сообщение для MoHaX Найти все сообщения от MoHaX
  № 4  
Ответить с цитированием
MoHaX
 
Аватар для MoHaX

Регистрация: Aug 2004
Сообщений: 422
Отправить сообщение для MoHaX с помощью ICQ
Мувиклип будет существовать в памяти еще долго, пока сборщик мусора его не удалит (в случае если на него не будет ссылок).
Так что лучше сделать.
Код AS3:
//Останавливаем
stop();
//Проверяем есть ли родитель (добавлен ли клип куданибудь).
if (parent){
     //Просим родителя удалить нас.
     parent.removeChild(this);
}

Старый 17.09.2009, 17:53
Vogd вне форума Посмотреть профиль Отправить личное сообщение для Vogd Найти все сообщения от Vogd
  № 5  
Ответить с цитированием
Vogd

Регистрация: Feb 2009
Сообщений: 34
Ах вот оно почему! Ясно, спасибо.

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

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

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


 


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


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