Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Прогресс бар Adobe Air [Android] (http://www.flasher.ru/forum/showthread.php?t=209436)

Capnmeth 10.11.2014 23:36

Прогресс бар Adobe Air [Android]
 
Я некак не смог сделать прогресс бар для мобильного приложения адобе айр, Обычные обработчики событии не работают. Бар работает только тогда когда в браузере загружаеться в мобиле нет. Вобщем если подумать то эти событии прогресса тут не причем когда включаешь приложение на мобиле то он пытаеться загрузить весь файл а не по отдельности, Как мне сделать прогресс бар для Андроид приложения.. Клип довольно большой около 80мб а на мобиле включаеться за 30 секунд.. Просто надо же знать еще сколько придеться ждать?

caseyryan 11.11.2014 08:03

Обычно при таких вопросах нужно приводить код, который у вас не работает.
Существует не один способ сделать прогресс бар

Capnmeth 11.11.2014 20:06

Код AS3:

import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.display.MovieClip;
 
var loader:Loader = new Loader();       
var progresser:MovieClip = new Progresser();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
 
loader.load(new URLRequest("index.swf"));       
addChild(progresser);
progresser.x = stage.stageWidth/2;
progresser.y = stage.stageHeight/2;
 
function onComplete(e:Event):void{
        trace('Load complete');
        addChild(loader);
        removeChild(progresser);
        }
function onProgress(e:ProgressEvent):void {
        trace(e.target.bytesLoaded);
        progresser.scaleX = e.bytesLoaded / e.bytesTotal;
        }

Работает, но не на Андроиде

dimarik 11.11.2014 21:21

Похожий код у меня работает в продакшене, в т.ч. на андроидах.

Правда, я по своей паранойи всегда храню ссылку на Loader. Попробуйте.

Capnmeth 12.11.2014 12:55

Цитата:

Сообщение от dimarik (Сообщение 1174838)
Похожий код у меня работает в продакшене, в т.ч. на андроидах.

Правда, я по своей паранойи всегда храню ссылку на Loader. Попробуйте.

Тоесть что мне сделать что бы у меня работало на Андроиде.

dimarik 12.11.2014 13:44

Код AS3:

var loader:Loader = new Loader();
addChild(loader);


Capnmeth 12.11.2014 16:08

Код AS3:

var loader:Loader = new Loader();
function onComplete(e:Event):void{
        trace('Load complete');
        addChild(loader);
        removeChild(progresser);
        }

А это что тогда?

dimarik 12.11.2014 20:36

Почувствуйте разницу:

— Деньги вперёд,— заявил монтёр,— утром — деньги, вечером — стулья или вечером — деньги, а на другой день утром — стулья.
— А может быть, сегодня — стулья, а завтра — деньги? — пытал Остап.


Разница в том, где в коде эта строчка находится.

Я к тому, что формально, ссылка, представленная локальной переменной "loader" перестает существовать при выходе из кадра. GC съедает ваш Loader и события "complete" не наступает никогда. Как вам такой сценарий? Закрепив Loader сразу после создания в Display List, вы избежите этой потенциальной проблемы.

Партизан 12.11.2014 21:28

Цитата:

Сообщение от dimarik (Сообщение 1174862)
Я к тому, что формально, ссылка, представленная локальной переменной "loader" перестает существовать при выходе из кадра. GC съедает ваш Loader и события "complete" не наступает никогда. Как вам такой сценарий? Закрепив Loader сразу после создания в Display List, вы избежите этой потенциальной проблемы.

Это какой-то баг андроида?

Capnmeth 12.11.2014 22:22

Цитата:

Сообщение от dimarik (Сообщение 1174862)
Почувствуйте разницу:

— Деньги вперёд,— заявил монтёр,— утром — деньги, вечером — стулья или вечером — деньги, а на другой день утром — стулья.
— А может быть, сегодня — стулья, а завтра — деньги? — пытал Остап.


Разница в том, где в коде эта строчка находится.

Я к тому, что формально, ссылка, представленная локальной переменной "loader" перестает существовать при выходе из кадра. GC съедает ваш Loader и события "complete" не наступает никогда. Как вам такой сценарий? Закрепив Loader сразу после создания в Display List, вы избежите этой потенциальной проблемы.

тогда если вам не трудно перепишите мой код так как вы говорили потому что суть я не так хорошо понял но нечего просто напишите код.


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

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