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

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

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

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Question loader нужно удалять?

Поставил вчера девятую альфу. Изучаю новый язык ) Сответсвенно куча вопросов. Например нужно ли удалять loader после того как она загрузил картинку и мы её разместили в спрайте?
и вообще чем отличается
addChild(loader) от addChild(loader.content) я всё-таки решил использовать второе, и удалать после всего loader, вдруг он лишную память жрёт. Только даже удалить его по человечески не могу. не знаю как это правильно сделать.

Вообщем что в этом коде лишнее и как вы обычно делаете, ситуция стандартная:

Код:
 
var l:Loader = new Loader();
 l.load(new URLRequest("s.jpg"));
 l.contentLoaderInfo.addEventListener('complete', onComplete);

 onComplete = function(){
	trace(l.content);
	addChild(l.content);
	l = undefined;
	trace(l);
 }
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 11.08.2006, 16:52
Den0k вне форума Посмотреть профиль Отправить личное сообщение для Den0k Найти все сообщения от Den0k
  № 2  
Ответить с цитированием
Den0k
Контрибьютор базы знаний по Флекс
 
Аватар для Den0k

Регистрация: Jul 2005
Адрес: Moldova, Rep. of
Сообщений: 569
Класс Loader является подклассом DisplayObjectContainer но может содержать только одного потомка, тот объект что загружается.

При добавлении Loader в дисплей лист, по наступлению загрузки добавиться и загружаемый дочерний объект, после чего с помощью свойства Loadera content : DisplayObject загруженный объект можно переместить в любой другой контейнер:
Код:
var pictLdr:Loader = new Loader();
var container:Sprite = new Sprite();
function imgLoaded(e:Event):void {
    container.addChild(pictLdr.content); 
}
Насчёт undefined, тут есть изменения по сравнению с предыдущими версиями AS (там, например, null и undefined могли применятся везде независимо от типа переменной-контейнера)

В AS3 только нетипизированные (untyped) переменные могут хранить значение undefined, то есть переменные объявленные так:

Код:
var a;
или
Код:
var a:*;
при попытке присвоить undefined переменной для которой тип данных указан flash превратит undefined в значение по умолчанию для этого типа. Так что в данном случае мало смысла делать так


Последний раз редактировалось Den0k; 11.08.2006 в 16:55.
Старый 11.08.2006, 18:47
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 3  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Цитата:
Сообщение от Den0k
. Так что в данном случае мало смысла делать так
Получается что однажды созданный Loader невозможно удалить?
мелочь, а неприятно
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 11.08.2006, 19:16
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 4  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
Цитата:
Сообщение от miramax
Получается что однажды созданный Loader невозможно удалить?
мелочь, а неприятно
ну вот у мувика нельзя удалить метод .loadMovie().
мелочь, а неприятно

Старый 11.08.2006, 19:48
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 5  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
Цитата:
Сообщение от miramax
Получается что однажды созданный Loader невозможно удалить?
мелочь, а неприятно
Можно, саморучно нельзя конечно, но если все ссылки на loader убьешь (как вариант приравнять l не к undefined а к null) то его при следущем обходе приберет к себе GC. собвственно так обстаит дело со всеми объектами во флэше, ты же не заботишься об собственно ручном убивании объекта события который получает обработчик? если ты его не сохранишь где то, то о нем в свое время позаботиться GC

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

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Цитата:
Сообщение от KidsKilla
ну вот у мувика нельзя удалить метод .loadMovie().
мелочь, а неприятно
Не утрируй, просто когда не удаляются новые поля из динамического класса, мне это не нравится. 7thsky, действительно помогает!
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 11.08.2006, 21:01
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 7  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
я не утрирую. delete для ссылки никто не отменял.

Старый 11.08.2006, 22:24
Den0k вне форума Посмотреть профиль Отправить личное сообщение для Den0k Найти все сообщения от Den0k
  № 8  
Ответить с цитированием
Den0k
Контрибьютор базы знаний по Флекс
 
Аватар для Den0k

Регистрация: Jul 2005
Адрес: Moldova, Rep. of
Сообщений: 569
В AS3 delete может применятся только к динамическим переменным, с членами классов не выйдет, тут как сказал 7thsky™ можно выкрутиться присваиванием null, если все ссылки на объект будут содержать null то он конечно будет помечен GC на удаление и убран из памяти.

Старый 11.08.2006, 23:01
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 9  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
я только вот не понимаю на кой делать Loader членом класса...
да и в 1м примере var loader:Loader ...
а так да.

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

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

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


 


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


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