|
Страница 1 из 1 [ Сообщений: 30 ] |
Автор |
Сообщение |
Balago306
новый человек
|
|
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
постоянный участник
|
|
ээ проверка на загрузку вот такая может быть:
t=loadmc.getBytesTotal();
l=loadmc.getBytesLoaded();
if(t/l==1)trace('loaded!');
всё это можно сделать например в onEnterFrame()
loadmc - клип который грузим
Или использовать MovieClipLoader()
onLoadComplete() тебе поможет
_________________ можно на ТЫ.
|
|
|
|
|
Balago306
новый человек
|
|
а как их использовать ?
MovieClipLoader()
onLoadComplete()
|
|
|
|
|
bE(o0L
постоянный участник
|
|
создай новый loader=new MovieClipLoader()
cоздай listener=new Object()
навесь на listener всё что тебе надо (loadClip, onLoadProgress, onLoadComplete)
и подвяжи listener к loader
loader.addListener(listener)
глянь в хелпе там всё подробно
_________________ можно на ТЫ.
|
|
|
|
|
Balago306
новый человек
|
|
а есть ли здесь добрые люди, кот. любезно согласились помочь его мне написать?
Потерял я два дня на эти траблы.
Купил 2 талмуда по AS2. Проштудировал
MovieClipLoader() и onLoadComplete() и тп.
попробовал - ни хрена. Посмотрел у буржуев, попробовал - ни хрена. Параллельно возникает масса мелких проблем, кот. тоже нужно решать.
совет eddy444 мне помог, заработало. Но, как он и сказал, было бы неплохо универсальный.…
|
|
|
|
|
BlooDHounD
соучастник
|
|
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
новый человек
|
|
что не понятно?
скажем, target_mc - что такое ?
созданный мувик нат главном тайм лайне, или что ?
|
|
|
|
|
Balago306
новый человек
|
|
если бы тоже самое, но с русскими комментами (хотя бы базовыми...(((
|
|
|
|
|
bE(o0L
постоянный участник
|
|
кусок когда конечно же не полный
target_mc это переменная которая содержит именной инициализатор клипа
тобишь в руте может быть клип test
тогда его можно представить в виде
_root.test - прально? а можно упростить:
var target_mc=_root.test
trace(target_mc._name) // покажет test
trace(target_mc) //покажет объект (абсолютный путь)
_________________ можно на ТЫ.
|
|
|
|
|
bE(o0L
постоянный участник
|
|
Код: 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
постоянный участник
|
|
p.s.
ты можешь наделать тучу загрузчиков (movieClipLoader) и привязать к ним всем один и тотже объект с событиями. Знаешь как удобно!
_________________ можно на ТЫ.
|
|
|
|
|
Balago306
новый человек
|
|
to bE(o0L: СПАСИБО ОГРОМНОЕ...
но видимо у меня энто не хотит работать с моим прелоадером в первом кадре (если вставляю в просто пустой файл - все ок)
не может ли Ваш последний код (с комментами который) не работать если вначале стоит stop() или как-то от лоадера ?
|
|
|
|
|
bE(o0L
постоянный участник
|
|
слушай, ну забудь ты про загрузчики в каждом подгружающем клипе
сделай файл index.swf, там напиши обработчик загрузки (см выше)
синициализируй две загрузки (main, left)
когда загрузиться main, cтартани его с 120 кадра (или какой там)
почему не работает - не знаю. в голом клипе будет пахать.
кстати, у тебя какой флеш?
_________________ можно на ТЫ.
|
|
|
|
|
Balago306
новый человек
|
|
|
|
|
|
Balago306
новый человек
|
|
хм, дык его написать для меня тяжеловато
понимаешь, я как программер - такой якорь, как выяснилось!!!
этот AS меня добъет когда -нить,
нарисовать - все нарисовал, продумать структуру - продумал,
.., из-за моего "невтыкания в синтаксис", из-за этих грёбаных мелочей процесс стоит ((
|
|
|
|
|
bE(o0L
постоянный участник
|
|
да брось, тяжеловато - ты вон какую конструкцию замудрил для проверки загрузки - со времеными рамками и всё такое. давай, давай - хватит на форуме сидеть, ты начни хотябы
p.s.
AS кстати дико простой, главное не бояться.
_________________ можно на ТЫ.
|
|
|
|
|
Balago306
новый человек
|
|
да я начал уже как 3 дня!!!
купил 2 талмуда по AS, …..
конструкция не моя - я ее из исходника одного взял и адаптировал для своего ))
|
|
|
|
|
bE(o0L
постоянный участник
|
|
ааа... здорово. ну тогда расслабся. все проблемы ещё впереди
_________________ можно на ТЫ.
|
|
|
|
|
Balago306
новый человек
|
|
а как обращаться из-этого загрузчика index.swf к загружаемому скажем main.swf ?
|
|
|
|
|
bE(o0L
постоянный участник
|
|
вначале сделай в 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
новый человек
|
|
|
|
|
|
Balago306
новый человек
|
|
то bE(o0L
а куда бы мне направить действия, пока не загрузился left_main.swf ?
в main.swf на 110 кадре, (до меню) у меня stop();
на 120 кадре - меню
не пашет. То есть после stop не переходит ((
|
|
|
|
|
bE(o0L
постоянный участник
|
|
ну так ты в событии проверки загрузки поставь
если main загружен то gotoAndPlay(111)
как вариант:
obj.onLoadComplete=function(targ){
if(targ._name=='main')targ.gotoAndPlay(111);
}
p.s.
targ._name это имя того клипа, куда ты грузишь main.swf
_________________ можно на ТЫ.
|
|
|
|
|
Balago306
новый человек
|
|
дык если я в событии проверки загрузки ставлю
gotoAndPlay(111) то с кадра 111 таймер преспокойно идет на кадр 120, где меню.
а 120 кадр нужен, только когда main.swf загрузится полностью
|
|
|
|
|
bE(o0L
постоянный участник
|
|
так ты поставь чтобы gotoAndPlay работало тогда, когда загрузился main.swf, а не всё подряд
_________________ можно на ТЫ.
|
|
|
|
|
Balago306
новый человек
|
|
короче говоря получается так:
в кадре 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
новый человек
|
|
пардон
в кадре 110 - необходимо "быть" до загрузки left_main.swf
|
|
|
|
|
bE(o0L
постоянный участник
|
|
да не нужен этот таймлайн с кадрами. одного в index`e будет достаточно
_________________ можно на ТЫ.
|
|
|
|
|
|
Страница 1 из 1 [ Сообщений: 30 ] |
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
|
|