Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблема с LoadMovie (http://www.flasher.ru/forum/showthread.php?t=69027)

_TN 12.09.2005 08:27

Проблема с LoadMovie
 
Подгружаю во флеш проект еще одну swf'ку и в изначальной swf ке к новой сделал прелоадер. Когда во флеше запускаю опцию "Simulate Download", прелоадер работает на ура! Но когда закачал файлы на фтп, с созданым html, прелоадер пробегает функции getBytesLoaded() и getBytesTotal(), будто бы они обе равны 0. Вследствии чего прелоадер не работает, но клип загружается ч\з некоторое время. Т.к. вес клипа нехилый ~ 500кб, прелоадер очень нужен!

Посоветуйте чегонибуть, может ктото знаком с такой проблемой.

P.S. путь к подгружаемому клипу и остальное указано верно. Еще раз напомню что при симуляции загрузки, загрузчик работает как надо.

Флешка лежит тут. www.ixstudio.ru/temp/

Заранее благодарен.

ffffff 12.09.2005 08:36

для начала проверь таргеты. ну а во вторых надо выкладывать не swf, a fla или ты только похвастаться достижениями хочешь?

_TN 12.09.2005 08:45

Цитата:

Сообщение от ffffff
для начала проверь таргеты. ну а во вторых надо выкладывать не swf, a fla или ты только похвастаться достижениями хочешь?

Нет возможности выкинуть fla. Они слишком большие. Второй файл 11 мб весит.
А что с таргетами? Я с ними не возился может чтото не так ?

Гружу swf таким образом. LoadMovie("mall.swf", "mainm");

mainm - это заменяемый клип.
Может чтото еще надо ?
Обращения к этому клипу потом идут, при его загрузки ~ таким образом _root.mainm.getBytesLoaded();

ffffff 12.09.2005 08:49

дык что ты пишешь! надо писать не как грузишь (раз грузица), а код прелоадера (раз проблема в прелоадере.) да и что у тя тама 11 мб весит? у тя тама графики дай бог килобайт на 200. bmp юзаешь??? м-м-м???

_TN 12.09.2005 08:59

Фишка. Не.. там jpg гов куча .. куча старых jpg'ов в библиотеке... удалять не охото могут понадобиться. С графикой еще не определились.
А что за код прелоадера ? У меня сейчас на работе есть старая версия первого fla, в нем прелоадер тотже так что пахать будет.

Погляди плз. Я с флешем 1.5 месяца работаю каждый день новые феньки узнаю..

Выкинул суда. www.ixstudio.ru/temp/123.rar

misha1 12.09.2005 13:54

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");
}

_TN 12.09.2005 15:01

Ну теперь у меня совсем голова закружится..
Я так понимаю сделать прелоадер много способов существует.
Не мог бы ктонить постучать в асю 950695, а то вешаться можно(ч\з 30 минут буду).

И если возможно просто объясните в чем моя ошибка в том клипе который я уже создал. Второй клип подгружается не при нажатии на кнопку а на определенном кадре. Прелоад реализован в нескольких кадрах..

_TN 12.09.2005 17:44

Народ, может ктото всеже глянет ?

flashtuchka 12.09.2005 18:11

извините, а вам никто не говорил, что интеграция png, а не jpg во fla-файл существенно уменьшает вес, и конечного swf тоже?

опубликуйте свой код, если уж умудрились наколбасить неподъемный fla для web'а (казнить за такие вещи, по-хорошему)).

поглядим.
---

_TN 12.09.2005 19:06

Сейчас все по полочкам разложу.
Есть 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 спасиба, сейчас буду им пользоваться, я флешем полтора месяца пользуюсь.. много примудростей.

_TN 13.09.2005 13:17

Ау народ! Тема стареет, а проблема все еще существует!

Prey 13.09.2005 15:33

народ, есть же такая замечательная вещь в семерке как 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:

_TN 13.09.2005 16:40

Попробую такой способ, но всеже раскажите про дедовские больше и конкретно по моей проблеме (с моим исходником) в чем дело.

За ответы спасиб, буду все тестить, работы очень много не успеваю над всем работать..

__i 14.09.2005 14:14

эх как я в свое время парился с этими загрузчиками %)))
Вобщем я уже не помню кто но на этом форуме разбирал эту тему, это было год полтора назад.
Вся запара у тебя в этой строке

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);
//все пока не загрузиться клип будет строчка с процентами загрузки

misha1 14.09.2005 21:15

ze loader
 
etot silka ne rabotaet , zagruzi v kakomta veb . kakoita primer i ia ispravliu(ili tvoi muvik katorom etot ashibka )

_TN 15.09.2005 09:07

Спасиб! я уже сделал! Все работает, исходник удалил.

Спасиба всем за участие, много дельных советов.. хотя пробьлемка была совсем в малом...


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

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