|
|
|||||
preload для презентации
Товарищи, помогите справиться с проблемой пожалуйста.
Я делаю прелоадер для презентации, состоящей из шести по разному сменяющих друг друга картинок. Намучился с ним уже. Ни внешний, ни внутренний не срабатывает. То есть, он ждет, когда bytesLoaded=bytesTotal, и запускается только после этого, но проигрывается все равно урывками и короче неправильно. Вы не подскажете, в чем может быть проблема? Может быть дело в том, что те шесть картинок не в библиотеке презентации, а подгружаются динамически из соседней папки? |
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
Средствами одного флеша тут не справиться: он "замораживается" при загрузке с хард-диска и анимацию прогресс-бара не видно.
http://www.flasher.ru/forum/showpost...0&postcount=19 |
|
|||||
то бишь, как я понял, это неосуществимо?... хм.
Я вот пробую заморочиться так, чтобы делать загрузку всех подгружаемых картинок одновременно с загрузкой самого мувика, чтобы их btotal и bload складывались,образуя один прогресс бар... Проект надо доделывать к понедельнику.... Так что ещё отпишусь. Глядишь что и выйдет. Добавлено через 18 часов 44 минуты Между тем либо меня глючит, либо я таки нашел решение. При проверке, по крайней мере, все работает. Решить эту задачу получилось при помощи внутреннего прелоадера. Поскольку проблема была в том, что все картинки загружались отдельно, поэтому получалась неразбериха в кадрах и фильм шел рывками, я решил забить все картинки (6 штук) в один loader при помощи MovieClipLoader. Так как они загружаются параллельно, а не поочередно, то даже не пришлось складывать все их byteloader'ы и total'ы. То есть можно было сделать так: (pig1.bytesLoaded/pig1.bytesTotal+pig2.bytesLoaded/pig2.bytesTotal+pig3.bytesLoaded/pig3.bytesTotal+pig4.bytesLoaded/pig4.bytesTotal)/4 Вообщем решение пришло неожиданно и как всегда работает непонятно от чего. Но оно проще, чем описанное. Вот: var loader:MovieClipLoader=new MovieClipLoader(); var listener:Object={} loader.addListener(listener); loader.loadClip("img/img1.jpg", pig1); loader.loadClip("img/img2.jpg", pig2); loader.loadClip("img/img3.jpg", pig3); loader.loadClip("img/img4.jpg", pig4); loader.loadClip("img/img5.jpg", pig5); loader.loadClip("img/img6.jpg", pig6); listener.onLoadStart=function():Void { _root.createTextField("preloader", 10234, 250,100,40,18); preloader.border = true; preloader.text ="0%"; _root.stop(); }; listener.onLoadProgress=function(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void { preloader.text= Math.round(bytesLoaded/bytesTotal*100)+"%"; var persent:Number = Math.round(bytesLoaded/bytesTotal*100) poloska._xscale= persent; }; listener.onLoadComplete=function():Void { _root.gotoAndPlay(2); preloader.removeTextField(); poloska._visible=false; } preloader- поле, которое отображает проценты циферками, а а клип poloska - синий прямоугольничек, _xscale которой равно процентам. при начале загрузки картинок клип останавливает проигрывание. При завершении загрузки - идет и проигрывает клип со второго кадра.) А заодно прячет прогресс-бар. Вообщем вроде как все правильно. |
Часовой пояс GMT +4, время: 21:29. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|