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

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

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

Регистрация: Sep 2011
Сообщений: 366
По умолчанию Как удалить объект созданный другой функцией?

Функция new загружает фото с урл и добавляет его в объект диалог виндоу, хотелось бы чтобы функция
closeMouse удаляла фото из dialog_window, но как получить доступ к этому объекту из другой функции?
обязательно ли нужно прописывать dialog_window.foto = null; - для корректного удаления?
Код AS3:
 function new(){
       var foto:Loader = new Loader;
	foto.load(new URLRequest(info.@foto));
 
	foto.contentLoaderInfo.addEventListener(Event.COMPLETE, loadfoto);
 
	function loadfoto(e:Event):void 
{
   	dialog_window.addChild(foto);
 
}
 
 
}
function closeMouse (event:MouseEvent):void {
 
	dialog_window.removeChild(foto);// нерабоатет габадж коллектор
	dialog_window.foto = null;
	}

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Я молчу про стиль/качество кода. Видимо, у Вас маловато пока опыта. Решение такое: Вам нужно сохранить ссылку на добавляемый элемент и потом воспользоваться ею же для удаления. Для этого нужно перед функцией new написать такой код:
Код AS3:
import flash.display.DisplayObject;
var _foto:DisplayObject = null;
И внутри функции loadfoto добавить такое:
Код AS3:
_foto = foto;
После чего внутри closeMouse написать так
Код AS3:
dialog_window.removeChild(_foto);
dialog_window.foto = null;
PS
GarbageCollector всегда работает правильно. Прошу Вас принять это на веру.
Так же стоит учесть что если Вы несколько раз будете добавлять Loader'ы на сцену, то для хранения ссылок Вам потребуется уже массив объектов DisplayObject.
__________________
...вселенская грусть

Старый 25.09.2013, 14:52
grafillo! вне форума Посмотреть профиль Отправить личное сообщение для grafillo! Найти все сообщения от grafillo!
  № 3  
Ответить с цитированием
grafillo!

Регистрация: Sep 2011
Сообщений: 366
спасиба, норм вроде всё работает х)

Старый 25.09.2013, 16:47
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 4  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
не массив объектов, а массив ссылок

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
не массив объектов, а массив ссылок
Спасибо, что бы я без Вас делал?.. А массив объектов делать научите?
__________________
...вселенская грусть

Старый 25.09.2013, 18:22
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 6  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Цитата:
не массив объектов, а массив ссылок
Не имеет смысла уточнять. За это тебе никто двойку не поставит и не отругает.
Если так, то все есть ссылки. Да, это верно, но (!) давайте будем говорить понятным для новичков языком.
Потом они сами достигнуть дзена.

Старый 25.09.2013, 23:55
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Babylon Посмотреть сообщение
не массив объектов, а массив ссылок
Браво, маэстро! Как вы его осадили!
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 26.09.2013, 02:44
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 8  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Просто поправил. dimarik, кто Вас воспитывал в TZ? Извините, что с маленькой буквы.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Если так, то все есть ссылки. Да, это верно
Не все. Примитивные типы передаются по значению (просто не мог пройти мимо))

п.с. сейчас наверняка еще кто-то скажет, что и примитивов в ас3 нет как таковых, что все они в любом случае наследники Object) и конец этой темы будет положен только кем-то из модераторов)

Старый 26.09.2013, 09:00
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 10  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Э, не. Про простые типы я не говорил

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

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

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


 


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


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