![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Dec 2012
Сообщений: 28
|
на сцене экземпляр UILoader под названием loadWindow. Загрузка происходит, когда пользователь выбирает элемент из расположенного на сцене компонента List, имя экземпляра которого loadList
___ ничего не происходит и не выдает, после завершения загрузки выходит окно вывода пустое и все( |
|
|||||
|
Регистрация: Dec 2012
Сообщений: 28
|
при этом должно с достижением 20-процентного увеличения загрузки происходить увеличение размеров динамического текста на сцене на значение=5 и так до 100
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 497
|
Так не бывает при загрузке точного значения "20%". И "40%" не бывает. Данные грузятся порциями и вся порция сразу приходит. Поэтому вполне может быть 10%, а затем сразу 50%. Каждый диапазон нужно вручную проверять. Т.е. если percentLoaded > 20 & percentLoaded < 40, установить scale в ..., иначе если ... и так далее. И, видимо, без всяких +=.
|
|
|||||
|
Регистрация: Dec 2012
Сообщений: 28
|
function textProgress(e:ProgressEvent):void{ if ( 20 < loadWindow.percentLoaded < 40) {info_txt.scaleX = 2; info_txt.scaleY = 2;} if ( 40 < loadWindow.percentLoaded < 60) {info_txt.scaleX = 3; info_txt.scaleY = 3;} if (60 < loadWindow.percentLoaded < 80) {info_txt.scaleX = 4; info_txt.scaleY = 4;} if (80 < loadWindow.percentLoaded < 100) {info_txt.scaleX = 5; info_txt.scaleY = 5;} } |
|
|||||
|
Регистрация: Dec 2012
Сообщений: 28
|
все равно не получается..(
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 497
|
Продолжаем ловить блох. textProgress подписан только на Event.COMPLETE. Наверное, надо все-таки на ProgressEvent.PROGRESS. Или из progressHandler вызывать textProgress.
|
|
|||||
|
Регистрация: Dec 2012
Сообщений: 28
|
ни так ни сяк..не хочет работать, заколдованный текст |
|
|||||
|
Ksenya23, значит смотрите, я уже всё понял как надо делать у вас на 50 кадре вверху буква a, нажимаете на неё, затем нажимаете F9, теперь смотрите
import flash.text.TextField; var percent:int = loadWindow.percentLoaded; //var info_txt:TextField = new TextField();//ОН ЖЕ НАРИСОВАН РУЧКАМИ!!! info_txt.text = "Welcome to the home frame"; restart_btn.addEventListener(MouseEvent.CLICK, goStart); function goStart(e:MouseEvent):void { gotoAndPlay("loop"); count = 1; } loadList.addEventListener(Event.CHANGE, loadFile); function loadFile(e:Event):void { loadWindow.load(new URLRequest(e.target.selectedItem.data)); loadWindow.addEventListener(ProgressEvent.PROGRESS, progressHandler); loadWindow.addEventListener(Event.COMPLETE, completeHandler); //loadWindow.addEventListener(Event.COMPLETE, textProgress);?!?!?!? //почему-же на Event.COMPLETE, а как-же 20% загрузки info_txt.scaleX = info_txt.scaleX = 1;//СБРОС } bar.visible = false; loadingAnimation.visible = false; loadingAnimation.stop(); loadingAnimation.alpha = .8; function textProgress(e:ProgressEvent):void{ //if (loadWindow.percentLoaded in [20, 40, 60, 80, 100]){ //info_txt.scaleX += 5; info_txt.scaleY += 5; //} } function progressHandler(e:ProgressEvent):void { bar.visible = true; prog_txt.visible = true; loadingAnimation.visible = true; var percent:int = loadWindow.percentLoaded; loadingAnimation.gotoAndStop(Math.ceil(percent/3)); prog_txt.text = String(loadWindow.bytesLoaded) + " of " + String(loadWindow.bytesTotal) + " bytes" + "\n" + " (" + percent +"% loaded)"; bar.setProgress(e.bytesLoaded, e.bytesTotal); //info_txt.text = 'hello' //ВОТ ЗДЕСЬ ЖЕ МОЖНО var p:Number = e.bytesLoaded/e.bytesTotal; info_txt.scaleX = 1+p; info_txt.scaleY = 1+p; } function completeHandler(event:Event):void { bar.visible = false; prog_txt.visible = false; loadingAnimation.visible = false; loadWindow.removeEventListener(ProgressEvent.PROGRESS, progressHandler); loadWindow.removeEventListener(Event.COMPLETE, completeHandler); } вот так даже будет с шагом 20 function progressHandler(e:ProgressEvent):void { bar.visible = true; prog_txt.visible = true; loadingAnimation.visible = true; var percent:int = loadWindow.percentLoaded; loadingAnimation.gotoAndStop(Math.ceil(percent/3)); prog_txt.text = String(loadWindow.bytesLoaded) + " of " + String(loadWindow.bytesTotal) + " bytes" + "\n" + " (" + percent +"% loaded)"; bar.setProgress(e.bytesLoaded, e.bytesTotal); //info_txt.text = 'hello' //ВОТ ЗДЕСЬ ЖЕ МОЖНО var p:Number = e.bytesLoaded/e.bytesTotal; p = int(p*5); //p будет изменяться от 1 до 5 //ведь 100/20 будет 5 info_txt.scaleX = 1+p/5; info_txt.scaleY = 1+p/5; }
__________________
Гоночка Последний раз редактировалось Alex Lexcuk; 21.03.2013 в 22:40. Причина: шаг 20 |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|