Просмотр полной версии : Загрузка JPG с прелоадером.
Перечитал все уже по поводу загрузки картинок с сервера.
И про прелоадеры прочитал. - это чтобы тему не удалили... :)
А вот как сделать так, чтобы при нажатии на кнопку в определенном месте моего ролика подгружалась из вне картинка (JPG), + в текстовом поле "percent" отображались проценты загрузки этой картинки, не понял.
Подскажите пожалуйста!
P.S. Я, честно говоря, в AS плохо разбираюсь, буду очень благодарен, если исходник выложите.
P.P.S. И за кусок кода большое спасибо скажу!
Nox Noctis
22.04.2006, 13:36
вот тут есть описание, вроде несложное...
http://noregret.org/tutor/resize/
не совсем то, что тебе нужно, но все основные элементы там описаны.
тебе нужно модифицированть функцию, определяющую, что картинка загрузилась (http://noregret.org/tutor/resize/#2) - добавить вывод процентов в текстовое поле.
Перечитал все уже по поводу загрузки картинок с сервера.
И про прелоадеры прочитал.
честно? и всё равно задаешь этот вопрос?
если так, то варианта два:
1. ты ничего не читал, или читал заголовок, а дальше стало лень.
2. не хватило интеллекта, чтобы понять. :(
прошу прощения, но я других вариантов не вижу.
http://noregret.org/tutor/resize/
Спасибо. Буду сейчас пробовать. Только плохо, что на http://noregret.org/ исходники в 8-м Флэше. Просто у меня 7. :(
ЧИТАЛ!!! скорее тогда пункт 2. :)
Nox Noctis
22.04.2006, 13:54
ЧИТАЛ!!! скорее тогда пункт 2. :)
ну, это поправимо :)
на будущее - если ты хочешь, чтобы тебе быстро помогли на форуме, то сам покопайся, сделай большую часть работы, и спрашивай, если понадобится, только что-то более конретное а не в общем "как это сделать? сделайте всё за меня!".
просто практика показывает, что народ очень плохо на такие вопросы реагирует. :)
Только плохо, что на http://noregret.org/ исходники в 8-м Флэше.обновил в этом рецепте исходник.
теперь он должен открываться и в седьмом флэше.
Прочитал, то что надо, без ресайза.
Вроде уже лучше. НО! Там не определяется количество процентов, чтобы я их в текстовое поле занес. Вот что я по этому поводу нашел:
_____________________
Код прелодера:
1 фрейм:
Код:
bl = getBytesLoaded();
bt = getBytesTotal();
persent = Math.round(bl*100/bt);
tpers.text = "Загрузка ролика: " + persent+" %";
Второй фрейм:
Код:
if (persent<100) {
gotoAndPlay(1)
}
else {
gotoAndPlay(3);
}
_____________________
Так вот меня немного смущает тот факт, что несколько фреймов тут. Можно все в одном сделать? Объясните пожалуйста, что надо сделать...
Nox Noctis
22.04.2006, 14:28
Вроде уже лучше. НО! Там не определяется количество процентов, чтобы я их в текстовое поле занес.
плохо дело. :))
вот, смотри, по этой ссылке:
http://noregret.org/tutor/resize/#2
есть такое:
clip.onEnterFrame = function()
{
var l = this.image.getBytesLoaded();
var t = this.image.getBytesTotal();
if (t>0 && l>=t) {
// загрузка закончилась
delete this.onEnterFrame;
}
};обрати внимание на строчки, выделенные красным.
первая строчка - это запись в переменную l количества загрузившихся байт.
вторая строчка - это запись в переменную t общего количества байт картинки.
вопрос: что такое проценты?
это доля загрузившейся части от целого выраженная в пределах от 0 до 100.
составляем отношение: l/t - это покажет нам какая часть от целого загрузилась. чтобы получились проценты - нужно умножить на 100.
итого, проценты: percent = l/t*100;
с выводом в текстовое поле справишься?
Сделал так - отображается только когда 100%, то есть нет:
1%, 2%, 3%,.. 100%. А сразу 100%.
persent = Math.round(bl*100/bt);
tpers.text = "Загрузка ролика: " + persent+" %";
КАК? несправился... :(
P.S. Я уже расстраиваться начинаю...
P.P.S.Сразу вопрос по другой теме можно, или надо новую создать?
И еще, можно тебя по асе потиранить? Есть несколько моментов, которые хотелось бы решить...
Хоть направил бы меня на путь истинный... :)
Nox Noctis
22.04.2006, 15:23
Сделал так - отображается только когда 100%, то есть нет:
1%, 2%, 3%,.. 100%. А сразу 100%.
persent = Math.round(bl*100/bt);
tpers.text = "Загрузка ролика: " + persent+" %";
1. в редакторе нажми Ctrl+Enter
2. в меню View > Download Settings выставь тестовую скорость похуже, например 14.4
3. нажми еще раз Ctrl + Enter
это включит имитацию загрузки ролика из инета.
просто пока ты тестишь со своей машины - ты и не увидишь процесса загрузки, потому что с локальной машины файл ЛЮБОГО размера загружается за время ОДНОГО кадра.
или, ты можешь выложить ролик в инет и проверить уже оттуда.
P.P.S.Сразу вопрос по другой теме можно, или надо новую создать?http://flasher.ru/forum/showthread.php?t=73845
пункт #4
Большое спасибо за исходник!!! Почему бы все исходники на 7-м не сделать? Думаю у большинства пользователей все-таки 7-ой стоит...
А на счет отладочного режима: Ctrl+Enter
- ну я же не совмем тормоз!!! Делал я это все + устанавливал скорость 0,1 Кб/с - все равно показывается сначала 0%, потом пауза, потом 100%.
Не понимаю как это сделать, да и центровка что-то не сработала...
Мне вообще не надо ресайзить - просто выводить бы картинку по центру клипа clip. И все. Ну и текстовое поле с % бегущими...
Помоги, пожалуйста, по-моему теперь очень конкретно!
Nox Noctis
22.04.2006, 15:46
А на счет отладочного режима: Ctrl+Enter
- ну я же не совмем тормоз!!! Делал я это все + устанавливал скорость 0,1 Кб/с - все равно показывается сначала 0%, потом пауза, потом 100%а ты точно нажал Ктрл+Ентер ПОВТОРНО?
вообще-то тогда должна идти загрузка "как настоящая"...
Так что делать с загрузкой? Проценты не показываются...
Nox Noctis
22.04.2006, 16:20
покажи, как ты составил код.
:-D Чуть не лопнул!!! Все-таки я тормоз!!!
Спасибо!!! Все работает! Только одно еще осталось! Щас перерыл кучу материала по запросу: "координаты центра" - подскажешь?
Чтобы картинка выводилась точно по центру мувика, в котором она выводится - в том примере на noregret.org, в клипе clip, чтобы по центру клипа clip выводился центр картинки. КАК?
Nox Noctis
22.04.2006, 16:37
чтобы по центру клипа clip выводился центр картинки. КАК?никакой магии.
просто подумай, ЧТО ИМЕННО ты хочешь получить - и ты сам найдешь решение :)
загружаемая картинка появляется левым верхним углом к центру clip.
значит, чтобы она встала на эту точку своим центром, нужно ПОСЛЕ окончания загрузки сдвинуть её вверх на половину высоты и влево на половину ширины.
функция, которая отслеживает окончание загрузки у тебя уже есть.
тебе нужно в неё добавить только одно действие:
if (t>0 && l>=t) {
// загрузка закончилась
delete this.onEnterFrame;
this.image._x -= this.image._width/2;
this.image._y -= this.image._height/2;
}
ОГРОМНОЕ!!! СПАСИБО!
Только вот Math.round при этом не нужен?
> Это нужно для того, чтобы пиксели картинки не смазывались (если расположить картинку по нецелым координатам, будет действовать сглаживание)
Не надо, или так лучше может?:
if (t>0 && l>=t) {
// загрузка закончилась
delete this.onEnterFrame;
this.image._x -= Math.round(this.image._width/2);
this.image._y -= Math.round(this.image._height/2);
}
Nox Noctis
22.04.2006, 17:20
Только вот Math.round при этом не нужен?а как ты думаешь? :)
Думаю нужен!
Все, тема закрыта!
Спасибо тебе Nox Noctis, большое!
P.S. Прощаюсь не на долго, вероятно... Сейчас перечитаю все что мне надо, если не найду ответы на свои вопросы - создам тему!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.