Форум 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)
-   -   Работа с getBytesTotal() (http://www.flasher.ru/forum/showthread.php?t=137192)

australian incognito 07.03.2010 00:03

Работа с getBytesTotal()
 
Есть такой кусок скрипта:
Код AS1/AS2:

var total:Number = 0;
var k:Number = 6;
for (var j:Number = 0; j<k; j++) {
                _root["imgSml"+j+"_mc"].loadMovie(_root["imgSml"+j]);
                _root["imgBig"+j+"_mc"].loadMovie(_root["imgBig"+j]);
                total += _root["imgSml"+j+"_mc"].getBytesTotal()+_root["imgBig"+j+"_mc"].getBytesTotal();
                trace(total)
        }

Почему в Output выводит одни нули, при условии, что картинки загружаются на сцену?

mooncar 07.03.2010 00:34

Не удивительно. А что при таком алгоритме может узнать несчастный метод getBytesTotal? Он просто не успевает получить данные, ведь ActionScript работает асинхронно.

Используйте класс MCL (MovieClipLoader). Просто откройте хелп и посмотрите, как нужно сделать.

australian incognito 07.03.2010 00:38

спасибо. сейчас постараюсь разобраться.

Добавлено через 1 час 6 минут
Собственно, начал разбираться и на определенном уровне выскочил вопрос:
Код AS1/AS2:

var loadListener:Object = new Object();
loadListener.onLoadStart = function() {
 ???
};
loadListener.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number):Void  {
 ???
};
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);
for (var j:Number = 0; j<k; j++) {
        mcLoader.loadClip(_root["imgSml"+j],_root["imgSml"+j+"_mc"]);
        mcLoader.loadClip(_root["imgBig"+j],_root["imgBig"+j+"_mc"]);
}

Как узнать, событие onLoadComplete произошло именно для всех загружаемых картинок, а не для первой из них? Как прописать функцию для события onLoadStart для каждой из картинок в отдельности?

Добавлено через 3 часа 32 минуты
Задача оказалась весьма непростой, но поиском нашел почти 1 в 1 топик с тем, что мне нужно. Но и там тема не раскрыта до конца... может кто-то сможет помочь?
http://www.flasher.ru/forum/showthread.php?p=795516
В частности в последнем куске кода не понятно, чему равна переменная (?) total.

in4core 07.03.2010 14:58

Код AS1/AS2:

var loadListener:Object = new Object();
loadListener.onLoadStart = function() {
 for (var j:Number = 0; j<k; j++) {
        _root["imgSml"+j+"_mc"]._alpha=100;
        _root["imgBig"+j+"_mc"]._visible = true;
}
};
loadListener.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number):Void  {
 for (var j:Number = 0; j<k; j++) {
        _root["imgSml"+j+"_mc"]._alpha=100;
        _root["imgBig"+j+"_mc"]._visible = true;
}
};
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);
for (var j:Number = 0; j<k; j++) {
        mcLoader.loadClip(_root["imgSml"+j],_root["imgSml"+j+"_mc"]);
        mcLoader.loadClip(_root["imgBig"+j],_root["imgBig"+j+"_mc"]);
}


australian incognito 07.03.2010 21:07

Я к сожалению не совсем понял, что значат эти строки кода... Это ответы на мои вопросы?
Задача ведь проста у меня (как казалось изначально). Есть картинки 2 видов - большие и маленькие. Они все разложены по папочкам. Есть ХМЛ где описаны пути к этим картинкам. Задача - используя данные из ХМЛ - сделать прелоадер для этих картинок и общей сцены. Картинки нужно грузить просто в отдельные мувики-контейнеры (и большие и маленькие - все на главную сцену - дальше я уже придумаю, что с ними сделать).


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

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