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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.05.2015, 21:32
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 11  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
Цитата:
Хотелось бы заранее как-то вычислять максимально доступное разрешение.
А почему бы не узнать версию Flash Player и по ней определять какая максимальная БитмапДата доступна?
Цитата:
Кстати, я пробовал уже этот энкодер, что из ссылки.
Зато сорцы доступны а с штатным особо ничего не сделаешь единственное что можно - вынести его в отдельный воркер.Но опять таки если прогресс в процентах показывать особо не надо, а просто хочется чтоб не висло все на время кодирования - то можно и штатный кодер задействовать

Старый 24.05.2015, 21:42
Alex626 вне форума Посмотреть профиль Отправить личное сообщение для Alex626 Найти все сообщения от Alex626
  № 12  
Ответить с цитированием
Alex626

Регистрация: Sep 2010
Сообщений: 167
Цитата:
Сообщение от undefined Посмотреть сообщение
А почему бы не узнать версию Flash Player и по ней определять какая максимальная БитмапДата доступна?
Компилирую под 11.4 - там вроде уже вообще нет ограничений, как, например, в 10 версии. Но что странно - всё равно выдаёт ошибку. Хотя и на гораздо бОльшем разрешении. Там написано в доках, что теперь только возможности ОС как-то ограничивают максимальное разрешение. А вот как именно - тут вопрос.


Цитата:
Сообщение от undefined Посмотреть сообщение
Зато сорцы доступны а с штатным особо ничего не сделаешь единственное что можно - вынести его в отдельный воркер.Но опять таки если прогресс в процентах показывать особо не надо, а просто хочется чтоб не висло все на время кодирования - то можно и штатный кодер задействовать
Надо будет попробовать. В конце концов, использовать нативный кодер, а вместо прогресс бара сделать псевдо-индикатор, который будет постепенно доходить до 100% с троеточием, либо обрываться, если нужно было меньше времени.

А вообще, для работы с памятью у нас есть какие-либо возможности во флеше?

Старый 24.05.2015, 21:49
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 13  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
Цитата:
А вот как именно - тут вопрос
Делать финт с try..catch() в начале работы 1 раз и запоминать макс. размер и не надо его запускать на каждый чих юзера.В процессе работы флэшки этот параметр меняться не будет

Цитата:
А вообще, для работы с памятью у нас есть какие-либо возможности во флеше?
пакет flash.system

Старый 29.05.2015, 01:35
Alex626 вне форума Посмотреть профиль Отправить личное сообщение для Alex626 Найти все сообщения от Alex626
  № 14  
Ответить с цитированием
Alex626

Регистрация: Sep 2010
Сообщений: 167
Выяснил, что вариант через цикл вычислять допустимый размер битмап-даты не катит - слишком медленно. Но у меня получилось, что максимальный размер, который можно снять - примерно 21874х24434. Далее уже будет ошибка BitmapData. Но истинно ли это для других компьютеров? Ведь в доках сказано, что возможный размер BitmapData зависит от системы, начиная с Flash Player 11.

Вот сегодня пробовал работать с памятью. Так и не понял, каким образом можно вычислить размер (в байтах) моей BitmapData, и главное, как узнать количество памяти, доступной в системе для флеша?

Код AS3:
var sizeX = mySprite.width*scale;
 
var resmem:String = Number(Math.pow(sizeX,2) *4 / 1024 / 1024).toFixed( 2 )+ "Mb";
var mem:String = Number( System.totalMemory / 1024 / 1024 ).toFixed( 2 ) + "Mb";
var freemem:String = Number( System.freeMemory / 1024 / 1024 ).toFixed( 2 ) + "Mb";
 
trace("resmem: "+resmem+" total used memory: "+mem + " total free memory: "+freemem);
//пример resmem: 1740.29Mb total used memory: 27.64Mb total used memory: 2.25Mb
Размер битмапдаты высчитывал приблизительно. Остальное выдаёт какие-то совсем уж необычные результаты, вроде "свободно 27 Мб, использовано 2.25 Мб"... Динамически что ли память берётся? Тогда вопрос, как мне узнать, что она вот-вот закончится?

Старый 29.05.2015, 03:22
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 15  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
Цитата:
Выяснил, что вариант через цикл вычислять допустимый размер битмап-даты не катит - слишком медленно.
Еще раз, в начале один раз все посчитать и запомнить не должно сильно затормозить.Это ведь не переменная величина.
Цитата:
Так и не понял, каким образом можно вычислить размер (в байтах) моей BitmapData
Есть метод flash.sampler.getSize(), но он работает только в дебаг-плеере.Альтернатива - перегонять битмапДату в ByteArray через метод writeObject и смотреть его свойство length.Хотя я не понимаю зачем эти выкрутасы с памятью.

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
GПрелоадер кстати делается просто : как только операция начинает работу - показываем прилоадер. Как только завеоршает - снимаем.
Прям дословно так
Код AS3:
showPreloader()
operationBitmapData() // хоть час пусть выполняется, пока не выполнится следующая строчка не пройдет
hidePreloader();
__________________
Марк Tween

Старый 29.05.2015, 15:08
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 17  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
in4core,ТС хочет чтоб анимацию прелодера не зависала пока идет
operationBitmapData()

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
ну чтоб не зависала то ЖС можно или воркер - да.
__________________
Марк Tween

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Я для сих целей использую as3corelib и разбиение на блоки с запуском/продолжение по сетТаймаут после последней итерации
__________________
return this...

Старый 30.05.2015, 15:46
Alex626 вне форума Посмотреть профиль Отправить личное сообщение для Alex626 Найти все сообщения от Alex626
  № 20  
Ответить с цитированием
Alex626

Регистрация: Sep 2010
Сообщений: 167
Разобрался с циклом. Я в начале делал не слишком-то рационально - искал с начала в конец. Решил проблему поиском от бОльшего к меньшему. Теперь где-то на 2 секунды подвисает, и вызывается проверка только после выброса первой ошибки создания BitmapData (в этом случае высчитывается по другой функции макс. разрешение через цикл, устанавливаются новые параметры и корректируется шкала в GUI).

Но вообще, интересно, как можно разбить на блоки. AlexCooper, расскажите, пожалуйста, больше.

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

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

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


 


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


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