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

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

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

Регистрация: Mar 2016
Сообщений: 52
По умолчанию Упростить (оптимизировать) HELP!!

Всем доброго времени суток!
Ситуация следующая, подгружаю ApplicationDomain с данными, далее appDomain.
Данные это Sound и BitmapData.
Нужно данные выгрузить из appDomain в соотв вектора, и appDomain занулить чтобы не мешался.
Решение которое есть у меня - рабочее, но есть подозрения что очень грузоемкое.. можно ли по человечески это сделать все ?

Вот мое решение.
Код AS3:
var SOURСE_MUSIC:Vector.<Sound>new Vector.<Sound>(100),Rooms:Vector.<BitmapData>=new Vector.<BitmapData>(100);
 
var logoClass:Class;
 
for(i=0;i<100;i++){logoClass=appDomain.getDefinition('music' + i) as Class;SOURСE_MUSIC[i]=new logoClass();}
for(i=0;i<100;i++){logoClass=appDomain.getDefinition('walk' + i) as Class;Rooms[i]=new logoClass();}
 
logoClass=null;appDomain=null;
Получаются вопросы..
1) Можно ли как то уменьшить число действий, допустим избавить от посредника в лице logoClass?
2) Может можно не обнулять appDomain, а просто из него достать ссылки, скопировать ссылки в вектора и ими рулить? Но как это сделать?
3) Может можно каждый раз, когда надо, доставать и использовать данные из appDomain через getDefinition.. (не хотелось бы этот сумбурный вариант, но все же, подскажите синтаксис как в этом случае запустить звук или переместить BitmapData. в Bitmap)
4) Или есть какие то другие идеи - решения ?

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

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 566
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
От посредника избавиться можно, но смысл убирать переменную?

Цитата:
3) Может можно каждый раз, когда надо, доставать и использовать данные из appDomain через getDefinition.. (не хотелось бы этот сумбурный вариант, но все же, подскажите синтаксис как в этом случае запустить звук или переместить BitmapData. в Bitmap)
Не совсем понятно зачем это, через getDefinition, конечно, можно данные доставать каждый раз. Но я так понял, что они все сначала достаются и складываются в массив. Звуки и битмапы и так сейчас в векторах хранятся.

Код AS3:
for(i=0;i<100;i++)
{
SOURСE_MUSIC.push(new (appDomain.getDefinition('music' + i) as Class)());
Rooms.push(new (appDomain.getDefinition('walk' + i) as Class)());
}
appDomain=null;
Но смысла в таком коде нет, разве что один цикл можно убрать раз они одинаковые.
__________________
Я заклинаю вас действовать иначе.

Старый 01.09.2017, 00:56
Egstond вне форума Посмотреть профиль Отправить личное сообщение для Egstond Найти все сообщения от Egstond
  № 3  
Ответить с цитированием
Egstond

Регистрация: Mar 2016
Сообщений: 52
Цитата:
Сообщение от Bletraut Посмотреть сообщение
От посредника избавиться можно, но смысл убирать переменную?
То есть сейчас лишней утечки памяти нету ? все ок ?


Цитата:
Сообщение от Bletraut Посмотреть сообщение
Не совсем понятно зачем это, через getDefinition, конечно, можно данные доставать каждый раз. Но я так понял, что они все сначала достаются и складываются в массив. Звуки и битмапы и так сейчас в векторах хранятся.
Данные достаются из appDomain, а еще раньше через loader копируются с удаленного сервера. Изначально вектора пусты, суть в том чтобы их заполнить и не допустить лишней утечки памяти.

Цитата:
Сообщение от Bletraut Посмотреть сообщение
Но смысла в таком коде нет, разве что один цикл можно убрать раз они одинаковые.
[/quote]

Смысл я описал в предыдущем предложении, равное число 100 - это для примера, естественно числа в реале будут разные

Цитата:
Сообщение от Bletraut Посмотреть сообщение
Код AS3:
for(i=0;i<100;i++)
{
SOURСE_MUSIC.push(new (appDomain.getDefinition('music' + i) as Class)());
Rooms.push(new (appDomain.getDefinition('walk' + i) as Class)());
}
appDomain=null;
Избавились от переменной, но по загрузке также? Оптимальней невозможно управлять этим контентом?

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

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 566
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Цитата:
Данные достаются из appDomain, а еще раньше через loader копируются с удаленного сервера. Изначально вектора пусты, суть в том чтобы их заполнить и не допустить лишней утечки памяти.
Они же и заполняются в цикле.
__________________
Я заклинаю вас действовать иначе.

Старый 01.09.2017, 01:16
Egstond вне форума Посмотреть профиль Отправить личное сообщение для Egstond Найти все сообщения от Egstond
  № 5  
Ответить с цитированием
Egstond

Регистрация: Mar 2016
Сообщений: 52
Цитата:
Сообщение от Bletraut Посмотреть сообщение
Они же и заполняются в цикле.
да, все норм, а такой метод оптимальный ? Ну в смысле нету такого что 90% памяти забивается зазря ?
Нету ли других более оптимальных методов рулить контентом, который загружается loaderом ?

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Ну в смысле нету такого что 90% памяти забивается зазря ?
Если 90% из загруженного не используется, то есть)
А так, вполне нормально все. Разве что стиль написания кода очень хреновый. Такой код трудно читается.
__________________
Ко мне можно и нужно обращаться на ты)

Старый 01.09.2017, 09:40
Egstond вне форума Посмотреть профиль Отправить личное сообщение для Egstond Найти все сообщения от Egstond
  № 7  
Ответить с цитированием
Egstond

Регистрация: Mar 2016
Сообщений: 52
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Если 90% из загруженного не используется, то есть)
А так, вполне нормально все. Разве что стиль написания кода очень хреновый. Такой код трудно читается.
Что вы имеете в виду под стилем написания, можно пример? Не думал что по 2м строчкам можно определить стиль написания)) имеется в виду использование векторов?

Старый 01.09.2017, 17:56
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 8  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Имеется ввиду вот :

Код AS3:
var SOURСE_MUSIC:Vector.<Sound> = new Vector.<Sound>(100),
var Rooms:Vector.<BitmapData> = new Vector.<BitmapData>(100);
var logoClass:Class;
 
for(var i:int = 0; i<100; i++)
{
      logoClass = appDomain.getDefinition('music' + i) as Class;
      SOURСE_MUSIC[i] = new logoClass();
}
 
for(i = 0; i<100; i++)
{
    logoClass = appDomain.getDefinition('walk' + i) as Class;
    Rooms[i] = new logoClass();
}
 
logoClass=null;
appDomain=null;
Форматирование
__________________
Марк Tween

Старый 01.09.2017, 20:11
Egstond вне форума Посмотреть профиль Отправить личное сообщение для Egstond Найти все сообщения от Egstond
  № 9  
Ответить с цитированием
Egstond

Регистрация: Mar 2016
Сообщений: 52
ясно, всем спасибо

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

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

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


 


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


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