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

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

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

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
По умолчанию удалениуе родителя

друзья, скажите, как нужно полностью "убивать" родительский клип?
думал, что получится но нет (
Код AS3:
this.parent.delete();
Добавлено через 6 минут
как вообще нужно обращаться к родителю?
в as2 можно было так:
Код AS1/AS2:
_parent._parent.removeMovieClip(); // как - то так

Старый 18.02.2010, 19:48
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 2  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
обращаться через parent

"Объект удалить невозможно, но можно подготовить объект для сборки мусора, удалив все ссылки на него. Типичной ссылкой на объект является указывающая на него переменная. Такую ссылку можно удалить, установив переменную на значение null. Сборщик мусора удаляет любой объект, на который нет ни одной ссылки."
http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/

удалять как и любой другой объект - занулить все ссылки, отписать всех слушателей
__________________
low +

Старый 18.02.2010, 19:55
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 3  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Цитата:
Сообщение от Jewelz Посмотреть сообщение
обращаться через parent

"Объект удалить невозможно, но можно подготовить объект для сборки мусора, удалив все ссылки на него. Типичной ссылкой на объект является указывающая на него переменная. Такую ссылку можно удалить, установив переменную на значение null. Сборщик мусора удаляет любой объект, на который нет ни одной ссылки."
http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/

удалять как и любой другой объект - занулить все ссылки, отписать всех слушателей
у меня объект card содержит объект close, при нажатии на close к объекту card должно присвоется значение null. Так и писать:
Код AS3:
card=null;

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

Регистрация: Nov 2007
Сообщений: 28
Код AS3:
var p = this.parent;
p.parent.removeChild(p);
p = null
как-то так

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

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Цитата:
Сообщение от Ануб Посмотреть сообщение
Код AS3:
var p = this.parent;
p.parent.removeChild(p);
p = null
как-то так
здорово, спасибо большущее!)

Добавлено через 1 час 10 минут
Цитата:
Сообщение от Ануб Посмотреть сообщение
Код AS3:
var p = this.parent;
p.parent.removeChild(p);
p = null
как-то так
прошу прощение, а как достучаться до родителя в таком случае:
маленькие круглые кнопки подгружают из библиотеки клип, в этом клипе есть кнопка закрыть, к которой и нужно прикрепить функцию для удаления родителя (picLoader). При нажатии на эту маленькую кнопку, срабатывает таймер, по истечению двух секунд, по идее, должен удолять picLoader. Ниче не получается (
посмотрите на исходник, плиз

Старый 18.02.2010, 21:29
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 6  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
а вот архив
Вложения
Тип файла: rar test.rar (53.7 Кб, 115 просмотров)

Старый 18.02.2010, 22:19
dixus вне форума Посмотреть профиль Отправить личное сообщение для dixus Найти все сообщения от dixus
  № 7  
Ответить с цитированием
dixus

Регистрация: Feb 2010
Сообщений: 33
Избавьтесь от вложенных функций. Из вложенной функции нельзя обращаться напрямую к методам данного объекта, таким как тот же removeChild.

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

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Цитата:
Сообщение от dixus Посмотреть сообщение
Избавьтесь от вложенных функций. Из вложенной функции нельзя обращаться напрямую к методам данного объекта, таким как тот же removeChild.
у меня с вложенными функциями проблема, в этом случае вложенная функция
Код AS3:
function onTimerComplete

Старый 18.02.2010, 22:59
dixus вне форума Посмотреть профиль Отправить личное сообщение для dixus Найти все сообщения от dixus
  № 9  
Ответить с цитированием
dixus

Регистрация: Feb 2010
Сообщений: 33
Я говорил про скрипт, находящийся на первом кадре (кстати, скрипты на кадрах лучше не размещать), а удаление не происходит потому, что вы вызываете метод removeChild у объекта, у которого нет дочерних элементов (функция onTimerComplete как раз не вложенная, это обычный метод класса ShortTimer). Можно, например, поставить ShortTimer на сцену, заменив
Код AS3:
var newTimer:ShortTimer = new ShortTimer;
на
Код AS3:
var newTimer:ShortTimer = new ShortTimer;
parent.parent.addChild(newTimer);
а
Код AS3:
removeChild(getChildByName("myContainer"));
заменить на
Код AS3:
parent.removeChild(parent.getChildByName("myContainer"));
Хотя, ИМХО, удалять и добавлять элементы на объект-родитель из дочернего не очень хорошо, лучше вызвать событие и удалить объект в коде основной сцены обработчиком этого события.


Последний раз редактировалось dixus; 18.02.2010 в 23:08.
Старый 18.02.2010, 23:20
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 10  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
спасибо за помощь!!!!

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

Теги
родитель , удаление

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

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


 


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


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