![]() |
Проблема с LoadMovie
Подгружаю во флеш проект еще одну swf'ку и в изначальной swf ке к новой сделал прелоадер. Когда во флеше запускаю опцию "Simulate Download", прелоадер работает на ура! Но когда закачал файлы на фтп, с созданым html, прелоадер пробегает функции getBytesLoaded() и getBytesTotal(), будто бы они обе равны 0. Вследствии чего прелоадер не работает, но клип загружается ч\з некоторое время. Т.к. вес клипа нехилый ~ 500кб, прелоадер очень нужен!
Посоветуйте чегонибуть, может ктото знаком с такой проблемой. P.S. путь к подгружаемому клипу и остальное указано верно. Еще раз напомню что при симуляции загрузки, загрузчик работает как надо. Флешка лежит тут. www.ixstudio.ru/temp/ Заранее благодарен. |
для начала проверь таргеты. ну а во вторых надо выкладывать не swf, a fla или ты только похвастаться достижениями хочешь?
|
Цитата:
А что с таргетами? Я с ними не возился может чтото не так ? Гружу swf таким образом. LoadMovie("mall.swf", "mainm"); mainm - это заменяемый клип. Может чтото еще надо ? Обращения к этому клипу потом идут, при его загрузки ~ таким образом _root.mainm.getBytesLoaded(); |
дык что ты пишешь! надо писать не как грузишь (раз грузица), а код прелоадера (раз проблема в прелоадере.) да и что у тя тама 11 мб весит? у тя тама графики дай бог килобайт на 200. bmp юзаешь??? м-м-м???
|
Фишка. Не.. там jpg гов куча .. куча старых jpg'ов в библиотеке... удалять не охото могут понадобиться. С графикой еще не определились.
А что за код прелоадера ? У меня сейчас на работе есть старая версия первого fla, в нем прелоадер тотже так что пахать будет. Погляди плз. Я с флешем 1.5 месяца работаю каждый день новые феньки узнаю.. Выкинул суда. www.ixstudio.ru/temp/123.rar |
loader
nada tak sdelac
--------------- sdelaeSh muvi klip ,v neom dolzna bic 100 fraim , (nu kak xoCish),i dinamiceski pole patom v etom muve pastavish actions onClipEvent (load) { y=new Object(); y=_root.a; // v kakom muve dolzna zagruzatsa } onClipEvent (enterFrame) { fullsize=y.getBytesTotal(); nowsize=y.getBytesLoaded(); xx=nowsize/fullsize*100; _root.loade.gotoAndStop(Math.floor(xx)); //loade eta imua etovo ze muviklipa } a pnobka s kotorom ti budesh vnesti eto operaciu takaia action on (release) { _root.a.loadMovie("pic/1.swf", "0"); } |
Ну теперь у меня совсем голова закружится..
Я так понимаю сделать прелоадер много способов существует. Не мог бы ктонить постучать в асю 950695, а то вешаться можно(ч\з 30 минут буду). И если возможно просто объясните в чем моя ошибка в том клипе который я уже создал. Второй клип подгружается не при нажатии на кнопку а на определенном кадре. Прелоад реализован в нескольких кадрах.. |
Народ, может ктото всеже глянет ?
|
извините, а вам никто не говорил, что интеграция png, а не jpg во fla-файл существенно уменьшает вес, и конечного swf тоже?
опубликуйте свой код, если уж умудрились наколбасить неподъемный fla для web'а (казнить за такие вещи, по-хорошему)). поглядим. --- |
Сейчас все по полочкам разложу.
Есть 2 файла: 1. intro2.swf 2. mALL.swf Выше я их в rar'е выложил www.ixstudio.ru/temp/123.rar . В html запускается файл intro2.swf. Самый первый слой ("as" - название) содержит символ с прелоадером. Заходим в этот символ и в нем 2 слоя. На одном графичиское изображение лоадера ("Загрузка:" и прямоугольничик с бегущим красным прогрес баром), на втором код прелодера. Элементы AS с кода прелоадера: 41 кадр: loadMovie("mALL2.swf","_root.mainm"); 42: if (_root.mainm.getBytesTotal()==_root.mainm.getBytesLoaded()) this.gotoAndPlay(45); 43: loader._width=_root.mainm.getBytesLoaded()/_root.mainm.getBytesTotal()*100; 44: if (_root.mainm.getBytesLoaded()<_root.mainm.getBytesTotal()) gotoAndPlay(43); 45: _root.mainm.a1.play(); stop(); В 45 кадре больше не видно прогресс бара и запускается один из клипов загруженой swf'ки. Когда симулируеш закачку во флеше все отлично пашет, а на ftp закачиваю и функции getBytesLoaded(), getBytesTotal() не срабатывают на данный клип. Вобщем все будет видно если закачать тот файлик, что выше. А в icq никак не постучать, а то я сейчас тут.. Насчет png спасиба, сейчас буду им пользоваться, я флешем полтора месяца пользуюсь.. много примудростей. |
Ау народ! Тема стареет, а проблема все еще существует!
|
народ, есть же такая замечательная вещь в семерке как MovieClipLoader :)
используем так my_mcl = new MovieClipLoader(); myListener = new Object(); myListener.onLoadProgress = function(target_mc:MovieClip, loadedBytes:Number, totalBytes:Number) { trace( "Loading "+Math.round(loadedBytes/totalBytes*100))+"%";) //типа сколько % загрузилось }; myListener.onLoadInit = function(target_mc:MovieClip) { // что делаем по окончании загрузки (почему то событие onLoadComplete срабатывает тока на однократной загрузке, т.е. с закэшеным файлом такое не прокатит }; my_mcl.addListener(myListener); my_mcl.loadClip("clip.swf", куда_грузим); там еще и другие события для него есть - читаем хелп. Тока одно но, работать локально не будет, а тока если закачать на фтп., такая вот особенность :confused: |
Попробую такой способ, но всеже раскажите про дедовские больше и конкретно по моей проблеме (с моим исходником) в чем дело.
За ответы спасиб, буду все тестить, работы очень много не успеваю над всем работать.. |
эх как я в свое время парился с этими загрузчиками %)))
Вобщем я уже не помню кто но на этом форуме разбирал эту тему, это было год полтора назад. Вся запара у тебя в этой строке if (_root.mainm.getBytesTotal()==_root.mainm.getBytes Loaded()) this.gotoAndPlay (45); я не помню точно как это рассказывали, но фишка в том что до команды LoadMovie твой клип mainm уже загружен и имеет какой-то размер и у тя получаеться что в этом сравнении при загрузке на первом же шаге это условие выполняеться и переходит на 45 фрейм %((( а написать нужно вот такую байду : t=_root.mainm.getBytesTotal(); l=_root.mainm.getBytes Loaded(); if (l && t && l>=t) gotoAnd....... тут я приведу пример программного прилоадера %)) MovieClip.prototype.createPreloader = function(who, x, y) { //who - это тот клип в который загружаешь чего-нибудь. // x,y - координаты где он расположиться this.createEmptyMovieClip("preloader", 1); this["preloader"]._x = x; this["preloader"]._y = y; this["preloader"].createTextField("pl", 1, 0, 0, 0, 0); this["preloader"].pl.autoSize = "left"; this["preloader"].pl.text = "loading..."; this["preloader"].who = who; this["preloader"].onEnterFrame = function() { l = this.who.getBytesLoaded(); t = this.who.getBytesTotal(); this.pl.text = 'loading '+Math.round(l/t*100)+' %'; if (l && t && l>=t) { // здеся пишем че нам делать когда все загрузилось %)) // например who.play(); или this._parent.goAndPlay(); this.removeMovieClip(); } }; }; используешь как this.stop(); this.loadMovie('blabla.swf'); this.createPreloader(this,10,20); //все пока не загрузиться клип будет строчка с процентами загрузки |
ze loader
etot silka ne rabotaet , zagruzi v kakomta veb . kakoita primer i ia ispravliu(ili tvoi muvik katorom etot ashibka )
|
Спасиб! я уже сделал! Все работает, исходник удалил.
Спасиба всем за участие, много дельных советов.. хотя пробьлемка была совсем в малом... |
| Часовой пояс GMT +4, время: 12:14. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.