помогите с проверкой загрузки мувика @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 30 ] 
*   Список форумов / Технологии изображения / Flash » ответить » создать топик « | »
Автор Сообщение
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Заголовок сообщения: помогите с проверкой загрузки мувика
Сообщение Добавлено: 20 Июль 2005, 15:14:29 
hi
проблема такая

имеется основной мувик
main.swf
и подгружаемый в него мувик
left.swf (загрузка его происходит в кадре 12)
left.swf вести достаточно много.

в main.swf находится меню(на карде 120)

хочеьтся сделать, чтобы переход на кард 120 происходил после
того, как загрузится left.swf (по эстетическим соображениям).
то есть: как писать на as проверку на загрузку мувика left.swf ?


в обоих мувиках предлоадер в 1 кадре:
onClipEvent(enterFrame){
bytesLoaded = _root.getBytesLoaded();
bytesTotal = _root.getBytesTotal();
timer = getTimer();

percent = bytesLoaded/bytesTotal;
_root.loadingBar.bar._xscale = percent*100;
percent_loaded = Math.round(percent*100)
bytes_per_second = Math.round(bytesLoaded/(timer/1000));
seconds_left = (bytesTotal - bytesLoaded)/bytes_per_second;

minutes = math.floor(seconds_left/60);
if (number(minutes) < 10) {
minutes = "0" + minutes;
}
seconds = Math.round(seconds_left - (minutes*60));

if (number(seconds) < 10) {
seconds = "0" + seconds;
}

time_left = minutes + ":" + seconds;


if (percent == 1){
_root.loadingBar._visible = false;
_root.gotoAndPlay(2);
}
}
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 20 Июль 2005, 15:54:22 
ээ проверка на загрузку вот такая может быть:
t=loadmc.getBytesTotal();
l=loadmc.getBytesLoaded();
if(t/l==1)trace('loaded!');

всё это можно сделать например в onEnterFrame()
loadmc - клип который грузим

Или использовать MovieClipLoader()
onLoadComplete() тебе поможет :cool:

_________________
можно на ТЫ.
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 20 Июль 2005, 16:10:24 
а как их использовать ?

MovieClipLoader()
onLoadComplete()
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 20 Июль 2005, 16:17:17 
создай новый loader=new MovieClipLoader()
cоздай listener=new Object()

навесь на listener всё что тебе надо (loadClip, onLoadProgress, onLoadComplete)
и подвяжи listener к loader
loader.addListener(listener)

глянь в хелпе там всё подробно ;)

_________________
можно на ТЫ.
eddy444 Муж.
Модератор
315
Сообщения: 14467
Зарегистрирован: 05.05.03
Откуда: NSK
Сообщение Добавлено: 20 Июль 2005, 17:25:39 
я, как приверженец способов "по старинке" делал в таких случаях тупее - в подгружаемом мувике в нужном кадре (например, сразу после прелоадера) ставил команду проигрывания, например _root.gotoPlay(120);
Но грамотнее конечно написать один универсальный модуль подгрузки для основного флэша, и не делать своих подгрузчиков в каждом подгружаемом. Универсальный со всевозможными проверками и заодно потом его использовать во всех остальных проектах.
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 21 Июль 2005, 15:49:48 
а есть ли здесь добрые люди, кот. любезно согласились помочь его мне написать?

Потерял я два дня на эти траблы.
Купил 2 талмуда по AS2. Проштудировал
MovieClipLoader() и onLoadComplete() и тп.

попробовал - ни хрена. Посмотрел у буржуев, попробовал - ни хрена. Параллельно возникает масса мелких проблем, кот. тоже нужно решать.

совет eddy444 мне помог, заработало. Но, как он и сказал, было бы неплохо универсальный.…
BlooDHounD Муж.
соучастник
0
Сообщения: 585
Зарегистрирован: 12.03.04
Откуда: Беларусь - Борисов
Сообщение Добавлено: 21 Июль 2005, 17:15:52 
bE(o0L, ага … тоже мне придумал хелп. Хелп же для новчиков, сам читай эту бяку! А между тем, вот вырезка:

Flash MX Pro 2004 писал(а):
Example
The following example loads an image into a movie clip instance called image_mc. The onLoadInit and onLoadComplete events are used to determine how long it takes to load the image. The information displays in a dynamically created text field called timer_txt.

this.createEmptyMovieClip("image_mc", this.getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadStart = function(target_mc:MovieClip) {
target_mc.startTimer = getTimer();
};
mclListener.onLoadComplete = function(target_mc:MovieClip) {
target_mc.completeTimer = getTimer();
};
mclListener.onLoadInit = function(target_mc:MovieClip) {
var timerMS:Number = target_mc.completeTimer-target_mc.startTimer;
target_mc.createTextField("timer_txt", target_mc.getNextHighestDepth(), 0, target_mc._height, target_mc._width, 22);
target_mc.timer_txt.text = "loaded in "+timerMS+" ms.";
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("http://www.macromedia.com/images/shared/product_boxes/112x112/box_studio_112x112.jpg", image_mc);


чё-тебе сдесь не понятно?
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 15:20:32 
что не понятно?
скажем, target_mc - что такое ?
созданный мувик нат главном тайм лайне, или что ?
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 15:22:22 
если бы тоже самое, но с русскими комментами (хотя бы базовыми...(((
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 22 Июль 2005, 15:36:56 
кусок когда конечно же не полный

target_mc это переменная которая содержит именной инициализатор клипа

тобишь в руте может быть клип test
тогда его можно представить в виде
_root.test - прально? а можно упростить:
var target_mc=_root.test
trace(target_mc._name) // покажет test
trace(target_mc) //покажет объект (абсолютный путь)

_________________
можно на ТЫ.
BlooDHounD Муж.
соучастник
0
Сообщения: 585
Зарегистрирован: 12.03.04
Откуда: Беларусь - Борисов
Сообщение Добавлено: 22 Июль 2005, 15:40:45 
target_mc - передаётся во все функции, которые там представлены. двумя словами это ссылка на клип в который всё это будешь грузить.
Или внимательнее просмотреть код, и хотя бы сделать элементарное CTRL+C, CTRL+V теперь не модно?
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 22 Июль 2005, 15:51:09 
Код:
var mcload:MovieClipLoader=new MovieClipLoader() // cоздали Лоадер
var obj:Object=new Object() // cоздали пустой объект
var loadContainer:MovieClip=_root.createEmptyMovieClip('loadc',_root.getNextHighestDepth()) //cоздали клип для загрузки
// событие в начале загрузки
obj.onLoadStart=function(targ){
   trace('start loading in '+targ)
}

// cобытие по окончанию загрузки
obj.onLoadComplete=function(targ){
   trace('clip '+targ+' loaded!')
}

// cобытие во время загрузки
obj.onLoadProgress=function(targ,l,t) {
   trace(targ+' loading: '+l+' of '+' t')
}

mcload.addListener(obj) // привязали объект с событиями к загрузчику
mcload.loadClip('test.swf',loadContainer) // грузим

_________________
можно на ТЫ.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 22 Июль 2005, 15:59:31 
p.s.
ты можешь наделать тучу загрузчиков (movieClipLoader) и привязать к ним всем один и тотже объект с событиями. Знаешь как удобно! :cool:

_________________
можно на ТЫ.
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 16:00:25 
to bE(o0L: СПАСИБО ОГРОМНОЕ...
но видимо у меня энто не хотит работать с моим прелоадером в первом кадре (если вставляю в просто пустой файл - все ок)
не может ли Ваш последний код (с комментами который) не работать если вначале стоит stop() или как-то от лоадера ?
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 22 Июль 2005, 16:13:42 
слушай, ну забудь ты про загрузчики в каждом подгружающем клипе :gent:
сделай файл index.swf, там напиши обработчик загрузки (см выше)
синициализируй две загрузки (main, left)
когда загрузиться main, cтартани его с 120 кадра (или какой там)

почему не работает - не знаю. в голом клипе будет пахать.
кстати, у тебя какой флеш?

_________________
можно на ТЫ.
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 16:19:11 
mx 2004
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 16:21:42 
хм, дык его написать для меня тяжеловато

понимаешь, я как программер - такой якорь, как выяснилось!!!
этот AS меня добъет когда -нить,
нарисовать - все нарисовал, продумать структуру - продумал,
.., из-за моего "невтыкания в синтаксис", из-за этих грёбаных мелочей процесс стоит ((
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 22 Июль 2005, 16:23:58 
да брось, тяжеловато - ты вон какую конструкцию замудрил для проверки загрузки - со времеными рамками и всё такое. давай, давай - хватит на форуме сидеть, ты начни хотябы :laugh:

p.s.
AS кстати дико простой, главное не бояться. :gent:

_________________
можно на ТЫ.
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 16:27:00 
да я начал уже как 3 дня!!!
купил 2 талмуда по AS, …..

конструкция не моя - я ее из исходника одного взял и адаптировал для своего ))
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 22 Июль 2005, 16:28:40 
ааа... здорово. ну тогда расслабся. все проблемы ещё впереди :laugh:

_________________
можно на ТЫ.
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 16:29:45 
а как обращаться из-этого загрузчика index.swf к загружаемому скажем main.swf ?
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 22 Июль 2005, 16:35:33 
вначале сделай в index.swf два клипа для твоих мувиков
index.swf ->

var left=_root.createEmptyMovieClip('left',1)
var main=_root.createEmptyMovieClip('main',2)

затем загрузи
loadClip('left.swf',left)
loadClip('main.swf',main)

затем работай со своими данными из main, left.swf так же как ты и делал до этого, только спереди пиши: main либо left. Можно использовать with()

_________________
можно на ТЫ.
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 16:42:13 
ПАСИБА!!!
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 16:50:48 
то bE(o0L

а куда бы мне направить действия, пока не загрузился left_main.swf ?
в main.swf на 110 кадре, (до меню) у меня stop();
на 120 кадре - меню

не пашет. То есть после stop не переходит ((
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 22 Июль 2005, 16:55:17 
ну так ты в событии проверки загрузки поставь
если main загружен то gotoAndPlay(111)

как вариант:
obj.onLoadComplete=function(targ){
if(targ._name=='main')targ.gotoAndPlay(111);
}

p.s.
targ._name это имя того клипа, куда ты грузишь main.swf

_________________
можно на ТЫ.
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 17:06:32 
дык если я в событии проверки загрузки ставлю
gotoAndPlay(111) то с кадра 111 таймер преспокойно идет на кадр 120, где меню.
а 120 кадр нужен, только когда main.swf загрузится полностью
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 22 Июль 2005, 17:07:55 
так ты поставь чтобы gotoAndPlay работало тогда, когда загрузился main.swf, а не всё подряд

_________________
можно на ТЫ.
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 17:11:45 
короче говоря получается так:

в кадре 110 - необходимо "быть" до загрузки main.swf


в первом кадре код такой:

var mcload:MovieClipLoader=new MovieClipLoader() // cоздали Лоадер
var obj:Object=new Object() // cоздали пустой объект
var loadContainer:MovieClip=_root.createEmptyMovieClip('loadc',_root.getNextHighestDepth()) //cоздали клип для загрузки
// событие в начале загрузки
obj.onLoadStart=function(targ){
//trace('start loading in '+targ)
gotoAndPlay("110");
}

// cобытие по окончанию загрузки
obj.onLoadComplete=function(targ){
//trace('clip '+targ+' loaded!')
gotoAndPlay("120");
}

// cобытие во время загрузки
obj.onLoadProgress=function(targ,l,t) {
trace(targ+' loading: '+l+' of '+' t')
}

mcload.addListener(obj) // привязали объект с событиями к загрузчику
mcload.loadClip("left_main.swf",loadContainer) // грузим


на кадре 111 у меня стоит stop();

на кадре 130 общий stop();

и не работает (((
Balago306
новый человек
4
Сообщения: 189
Зарегистрирован: 13.04.05
Откуда: Moscow
Сообщение Добавлено: 22 Июль 2005, 17:12:47 
пардон

в кадре 110 - необходимо "быть" до загрузки left_main.swf
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 22 Июль 2005, 17:14:19 
да не нужен этот таймлайн с кадрами. одного в index`e будет достаточно :dandy:

_________________
можно на ТЫ.
*   Список форумов / Технологии изображения / Flash « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 30 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100