Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не отрисовывается спиннер во время JPEGEncoder.encode (http://www.flasher.ru/forum/showthread.php?t=161080)

BuKT 20.07.2011 16:12

Не отрисовывается спиннер во время JPEGEncoder.encode
 
Код AS3:

showSpinner();
var imageStream:ByteArray = jpegEncoder.encode(someImage.bitmapData);
hideSpinner();

И в ту и в другую функцию заходит. Всё что эти методы делают - меняют visible у спиннера, который уже отрисован и лежит на stage.
Однако, при вызове JPEGEncoder.encode() флешплеер удаляется поразмыслить над смыслом жизни и наотрез отказывается разговаривать со средствами отрисовки stage.

ЧЯДНТ?

goodguy 20.07.2011 16:17

Мало информации. Я делал нечто подобное, и работало нормально.
Где в коде вообще отрисовка? Я вижу только кодирование в jpeg

Dweem 20.07.2011 16:59

Если в спиннере анимация и проблема в том, что он висит и не анимируется, то это вобщемто нормально. Вы повешиваете флеш кодировкой jpeg. Используйте более быстрые кодировщики например blooddy_crypto

BuKT 21.07.2011 07:27

Цитата:

Где в коде вообще отрисовка? Я вижу только кодирование в jpeg
Отрисовки вообще нет. На стейдж уже лежит спиннер с visible == false. Имаджстрим кодируется для дальнейшей передачи лоадеру. Для того, чтобы пользователю показать, что в данный момент производятся некие затратные по времени действия - я хочу показывать спиннер и проявляю его через выставление visible = true.
Цитата:

Если в спиннере анимация и проблема в том, что он висит и не анимируется
Он даже не проявляется из невидимости

DaFive 21.07.2011 11:06

Потому что операция синхронная, то есть как бы подвешивает скрипт до завершения выполнения.

BuKT 21.07.2011 11:32

А есть способ сделать её асинхронной? Или подготовка имаги для МультипартЛоадера всегда будет подвешивать фп?

2Sun 21.07.2011 18:41

а если вот перед этой строкой
Код:

hideSpinner();
поставить задержку на секундочек 20 - он появится и будет висеть 20 сек? Насчет скорости кодировки - у меня 800-600 битмапу отрисовывало за доли секунды - спинер Ваш и моргнуть не успевает просто.

BuKT 16.04.2012 10:15

Решение задачи: в конце метода hideSpinner вешать слушатель на следующий энтерфрейм, в котором и будет производиться декодирование. Это нужно для того, чтобы произошло событие рендера и экран мог обновиться для отображения спиннера.


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

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