Просмотр полной версии : загрузка мувика, прелоэдер и переменные
есть игра. весит прилично.
поэтому отдельно сделал меню отдельно видео ролики отдельно каждый уровень.
все файлы находяться в формате swf, в одной папке.
вот вообщем что мне необходимо:
команда которая будет загружать, по имени следующий свф, а снизу цифорками написаны проценты сколько загрузилось. вообщем прелоэдер.
и еще надо чтобы все переменные которые были в этом клипе сохранялись, а точнее
их можно было использовать в загруженном мувике, с теми значениями которые были даны в предыдущем. :confused:
Используйте MovieClipLoader, напишите функцию nextLoad, где вызываете loadClip, а в методе onLoadInit - обращение опять к этой функции nextLoad.
Экземпляр MovieClipLoader и слушатель можно один и тот же использовать.
Переменные для аккуратности забивайте в массив какой-нибудь в теле того же onLoadInit.
а что за onInit? можно по подробнее, что это?
Если известно количество загружаемых swf-ок, то рекурсию прерываете по достижению счетчиком этого числа, если число неизвестно - прерываете рекурсию по срабатыванию onLoadError
Добавлено через 1 минуту
onLoadInit - я ошибся сперва - это метод класса MovieClipLoader, который вызывается при полной готовности загруженного клипа.
мне нужно не совсем то,
в канце каждого мувика должна стоять команда типо load(lvl2.swf)
в следуещем load(lvl3.swf).
я вполне смогу в конце каждого клипа написать код заного.
еще нужен, как я говорил, прелоэдер.
P.S.а как MovieClipLoader работает?
Тогда так: в методе onLoadInit при загрузке очередного ролика узнаете url следующего ролика, и передаете его этой функции.
Такой вот кусок:
listener.onLoadInit= function (target_mc:MovieClip) {
DATARRAY[0] = target_mc.var1; //навсегда забирем данные в основной ролик
....
DATARRAY[N] = target_mc.varN;
nextLoad(target_mc.url); //здесь забираем из загруженного ролика url следующего и передаем на рекурсию
};
Читайте про класс, вам без него не обойтись.
но все мувики находяться в папке, не в странице интернета, тогда url...
Вот в сыром виде:
total = 20;
i = 1;
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
mcLoader.addListener(listener);
listener.onLoadInit= function (target_mc:MovieClip) {
DATARRAY[0] = target_mc.var1; //навсегда забирем данные в основной ролик
....
DATARRAY[N] = target_mc.varN;
i++;
//тут можно выгрузить загруженное, если не нужно больше с помощью unloadMovie
nextLoad(target_mc.nexturl); //здесь забираем из загруженного ролика url следующего и передаем на рекурсию
};
function nextLoad (adres) {
if (i <= total) {
_root.createEmptyMovieClip("container" + i, i);
mcLoader.loadClip(adres, _root["container" + i]);
}
};
nextLoad ();
Добавлено через 2 минуты
Какая разница, где находятся?
Я говорил об url как о местонахождении загружаемого ролика, хоть http, хоть папку укажите.
а что за url?
я имею в виду откуда он тут, и что делает?
Добавлено через 6 минут
он выдал ошибки.
Unexpected '}' encountered
Unexpected '.' encountered
мне нужно не совсем то,
в канце каждого мувика должна стоять команда типо load(lvl2.swf)
Вот это самое "lvl2.swf" - и есть url следующего ролика.
Может быть так:
"data/superswfki/1.swf"
Вам нужно прописать переменную в ролимках, которая бы называлась, если брать мой код, nexturl, и присваивать ей этот самый url, или, если вас это так термин тут смущает, путь.
То есть в каждом ролике пишите адрес следующего:
var nexturl:String = "lvl2.swf"
..
var nexturl:String = "lvl20.swf"
В общем, как хотите, так и управляйте адресацией загружаемых роликов...
Добавлено через 1 минуту
Что значит ошибки?
Вы переменную nexturl пропишите в роликах и синтаксис проверьте, я вам пример накидал, а не рабочий код дал.
Добавлено через 3 минуты
Это компилятор выругался на "....", означающие пропуск некоторого количества элементов, где я показывал как данные в массив загонять, а вы просто даже и не подумавши все запустили. Вы же там говорили, что вам данные нужно забирать из роликов.
Добавлено через 8 минут
А статус загрузки возьмете из
listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
//тут выводите
trace ("загружено " + loadedBytes + " из " + totalBytes);
}
Учите матчасть про MovieClipLoader - сильно поможет.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.