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

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

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

Регистрация: Dec 2012
Сообщений: 28
По умолчанию Событие постепенной загрузки swf-файла

Добрый день, имеется небольшая задача - "Создайте динамическое текстовое поле и изменяйте значение его свойства text при увеличении загруженной части файла. Например, можно использовать условный оператор и изменять текст каждый раз, когда значение переменной percent увеличится на 20".
При моих попытках это сделать, никаких изменений не наблюдаю..в функции - textProgress, перебрала все свойства, проверила цикл..ничего, в чем я ошибаюсь? просто, но злит, почему не работает и ошибок никаких не выдает( представляю вашему вниманию исходник..
Вложения
Тип файла: rar 6.rar (990.9 Кб, 36 просмотров)

Старый 21.03.2013, 14:41
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 2  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Ksenya23, попробуйте сделать по уроку http://demiart.ru/forum/index.php?showtopic=95664#
Там как раз есть
Цитата:
Создайте динамическое текстовое поле и изменяйте значение его свойства text при увеличении загруженной части файла. Например, можно использовать условный оператор и изменять текст каждый раз, когда значение переменной percent увеличится на 20
Код AS3:
		private function progressHandler(event:ProgressEvent):void {
			var loaded:uint = event.bytesLoaded;//сколько загрузилось
			var total:uint = event.bytesTotal;//сколько весит всего
			var procent:uint = int(loaded/total*100);//процент загрузки
			preRectMc.scaleX = loaded/total;//ширина квадратика процентов загрузки
			preTxt.text = int(loaded/total*100)+'%';//в текстовом поле процент загрузки
		}
И объясните преподавателю, что
Цитата:
Например, можно использовать условный оператор и изменять текст каждый раз, когда значение переменной percent увеличится на 20
Это утверждение не охватывает возможных ситуаций, к примеру если
Код AS3:
var procent:uint = int(loaded/total*100);
выдаст что то типа 10,15,16,20 (тут сработает), а теперь скорость интернета выросла и затем 41, 82 и всё загрузилось затем получаем completeHandler.
__________________
Гоночка

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

Регистрация: Dec 2012
Сообщений: 28
Alex Lexcuk, спасибо, но большинство из этих параметров есть в моем файле..и я попробовала использовать один, как я поняла подходящий..поэтому изучение данного урока снова придет к моему текстовому полю, мне кажется в моем примере не так много надо будет сделать добавлений или изменений, возможно. Я не понимаю в чем ошибка, что понимаю не так..судя по вашему примеру урока, использую те же параметры - scaleX, scaleY.. и связываю вроде бы правильно, но попала в тупик.

Старый 21.03.2013, 17:56
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 4  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Ksenya23, так вам надо не внутренний прелоадер сделать, а просто подгружать swf файлы из этой папки.
Если так то всё у вас работает, просто надо сделать Simulate Download для эмуляции медленного соединения.
Нажимаете, ctrl+enter.
Теперь заходите в плеере View->Download Settings->Ставите тут 56k
Теперь надо опять нажать ctrl+enter. И ваша флешка будет медленно грузится и медленно загружать другие флешки в себя и будут видны и прогрессбар и текстовое поле с отображением процента загрузки.
__________________
Гоночка

Старый 21.03.2013, 18:47
Ksenya23 вне форума Посмотреть профиль Отправить личное сообщение для Ksenya23 Найти все сообщения от Ksenya23
  № 5  
Ответить с цитированием
Ksenya23

Регистрация: Dec 2012
Сообщений: 28
Про имитацию загрузки, знаю, так и делаю..просто текстовое динамическое поле не увеличивается(

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

Регистрация: Mar 2011
Сообщений: 243
Попробуйте
Код AS3:
loadWindow.addEventListener(ProgressEvent.PROGRESS, progressHandler);
заменить на
Код AS3:
addEvenListener(Event.ENTER_FRAME, progressHandler);

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от Deimos747 Посмотреть сообщение
Попробуйте
Код AS3:
loadWindow.addEventListener(ProgressEvent.PROGRESS, progressHandler);
заменить на
Код AS3:
addEvenListener(Event.ENTER_FRAME, progressHandler);
Зачем советовать человеку костыль?

Ksenya23, выкладывайте лучше код, который пишите, а не прикрепленные файлы, которые еще нужно в чем-то открыть.
У меня этот файл не открывается.

Старый 21.03.2013, 19:09
Ksenya23 вне форума Посмотреть профиль Отправить личное сообщение для Ksenya23 Найти все сообщения от Ksenya23
  № 8  
Ответить с цитированием
Ksenya23

Регистрация: Dec 2012
Сообщений: 28
Deimos747, нет, не выходит при таком способе..при этом исчезает символ загрузки и при щелчке на ссылку загрузки ролика - открывается окно вывода каждый раз(

Добавлено через 1 минуту
Хорошо, caseyryan..исправляюсь:
Код AS3:
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);
}
 
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);
}
 
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);
}

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

Регистрация: Mar 2011
Сообщений: 243
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Зачем советовать человеку костыль?
Я хотел посмотреть будет ли работать с костылём, поскольку в коде беглым взглядом мало что понял

Старый 21.03.2013, 19:39
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 10  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Закиньте в textProgress
Код AS3:
trace('loaded : ' + loadWindow.percentLoaded);
И посмотрите что вам выдаст.
Кто такой loadWindow?

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

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

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


 


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


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