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

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

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

Регистрация: Oct 2012
Сообщений: 20
По умолчанию Как удалить MovieClip со сцены?

Удалять нужно после завершения анимации.
На форуме нашел 2 способа, 1 с помощью анонимной функции (не совсем его понял)
2 вешать событие на последний кадр анимации.
Но вот как в обработчике этого события удалить мувиклип со сцены?
Код AS3:
removeChild(e.target);
removeChild(MovieClip(e.target));
В первом случае ошибка, неявное преобразование.
А во втором анимация не удаляется а наоборот проигрывается, несмотря на то что в первом кадре она должна остановится.

Старый 23.04.2013, 20:02
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 2  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
Прописываешь в последнем кадре анимации
Код AS3:
parent.removeChild(this);
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 23.04.2013, 20:08
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 3  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
вот вам пример:
Код AS3:
private var clip:MovieClip;//допустим что это какой-то существующий клип
 
public function Test() {
	addChild(clip);
	clip.addEventListener(Event.ENTER_FRAME, onClipEnterFrame);
	clip.play();
}
 
private function onClipEnterFrame(event:Event):void {
	if (clip.currentFrame == clip.totalFrames) {
		clip.removeEventListener(Event.ENTER_FRAME, onClipEnterFrame);
		clip.stop();
		removeChild(clip)
	}
}
а вот самоудаление из родителя, я бы не рекомендовал.
__________________
местонахождение

Старый 23.04.2013, 20:17
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 4  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
а чем плохо самоудаление ?
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 23.04.2013, 20:30
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 5  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
потому что дети не должны указывать родителям, что им(родителям) делать,.. эта тема 100500 раз поднималась на форуме.
__________________
местонахождение

Старый 23.04.2013, 20:38
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 6  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
неубедил )
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 23.04.2013, 20:53
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 7  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Киньте ссылку на обсуждение пожалуйста.

Старый 23.04.2013, 20:55
belyjj вне форума Посмотреть профиль Отправить личное сообщение для belyjj Найти все сообщения от belyjj
  № 8  
Ответить с цитированием
belyjj

Регистрация: Oct 2012
Сообщений: 20
Спасибо за советы) Теперь опишу что у меня получилось.
Код AS3:
parent.removeChild(this);
Работает норм если поместить непосредствено в последний кадр.
Код AS3:
clip.addFrameScript(clip.totalFrames - 1,	parent.removeChild(this));
Очищяет всю сцену.
А обработчик события EnterFrame почему то не видит обьект clip (обьявлен глобально, создаётся в функции Test из библиотеки). trace(clip) выводит null.

Старый 23.04.2013, 21:02
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 9  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
@belyjj, я бы вам советовал начать с азов, вы не понимаете как работает дисплей лист.
вы удаляете this из его родителя, какой результат вы ждали, тогда уж clip.parent.removeChild(clip), но это только в контексте того, что вы написали в последнем топике.

@chamele0n, я не собирался вас убеждать в чем-либо, создаете отдельную тему и получите ответы по этой теме.

@AlexLucas, извиняйте, я не сохраняю таких ссылок.
__________________
местонахождение

Старый 23.04.2013, 21:05
belyjj вне форума Посмотреть профиль Отправить личное сообщение для belyjj Найти все сообщения от belyjj
  № 10  
Ответить с цитированием
belyjj

Регистрация: Oct 2012
Сообщений: 20
Всё нашел ошибку, про var забыл, получается заново создавался обьект в функции Test.
Только ещё 1 вопрос, а будет работать, если анимация может создаваться в функции Test несколько раз, то есть обьектов clip может быть несколько на сцене, они все удалятся?

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

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

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


 


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


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