Форум 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)
-   -   Загрузить из одной swf другие с передачей параметров. (http://www.flasher.ru/forum/showthread.php?t=112119)

Gal4enochek 19.05.2008 12:09

Загрузить из одной swf другие с передачей параметров.
 
Доброго времени суток!
У меня такая проблема:
Есть одна свф-ка - part.swf, которая в зависимости от параметров, переданных ей через flashvars, формируется различным способом (загружает в себя различные картинки).
И есть другая свф-ка all.swf, которая должна загрузить в себя два экземпляра первой, но с различными параметрами (сама эта свф-ка тоже получает параметыр из flashvars).
Как передать параметры этим двум part.swf???
Спасибо большое!

alexcon314 19.05.2008 14:00

swf-загрузчик (all.swf):
Код:

var clip:MovieClip = _root.createEmptyMovieClip("clip", 0);
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("part.swf", clip);
onLoadComplete = function(mc){
mc.param="parameter_takoi_to";
}

swf, который подгружается (part.swf):
Код:

trace(param);

Gal4enochek 19.05.2008 17:47

Спасибо!
Это все работает, если загружается один экземпляр part.swf.
Если я хочу одновременно загрузить 2 экземпляра с разынми параметрами в 2 разных контейнера (clip1 и clip2), то параметры второго преписывают параметры первого.

Код:

var clip1:MovieClip = _root.createEmptyMovieClip("clip1", 0);
var clip2:MovieClip = _root.createEmptyMovieClip("clip2", 1);
clip2._y = 125;

var list1 : Object = new Object();
list1.onLoadComplete = function(mc){
  mc.parametr="value1";
}

var list2 : Object = new Object();
list2.onLoadComplete = function(mc){
  mc.parametr="value2";
}

var mcLoader1:MovieClipLoader = new MovieClipLoader();
mcLoader1.addListener(list1);
mcLoader1.loadClip("part.swf", clip1);

var mcLoader2:MovieClipLoader = new MovieClipLoader();
mcLoader2.addListener(list2);
mcLoader2.loadClip("part.swf", clip2);

Вышла из положения тем, что загружаю второй экземпляр (и присваиваю ему параметры) только после полной загрузки первого. Код получился более громоздким.

Gal4enochek 27.05.2008 14:56

Еще один вопрос к той же проблеме.
Одна свф-ка (all.swf) загружает другую (part.swf). В свою очередь part.swf считывает текстовый файл и согласно ему формируется.
Я хочу получить размеры part.swf.
Но событие onLoadInit() все равно возвращет нули :(
В чем тут может быть загвоздка?

Psycho Tiger 27.05.2008 15:44

Цитата:

Вышла из положения тем, что загружаю второй экземпляр (и присваиваю ему параметры) только после полной загрузки первого. Код получился более громоздким.
Лучше 2000 строк кода, который работает быстро и правильно, чем 50, но криво и медленно.

Насколько я помню, onLoadInit вызывается когда начинается загрузка. А на момент начатия загрузки мы ещё не знаем, какой это клип (в т.ч. его размеры).
Так что используем onLoadComplete||onData

iNils 27.05.2008 15:51

Порядок такой:
onLoadStart - началась загрузка
onLoadComplete - загрузка завершилась
onLoadInit - загруженный клип проинициализировался (с этого момента доступны его ширина, высота и его переменные и свойства)

Alex_beginner 27.05.2008 17:35

Позвольте поправить! Доступ к свойствам клипа уже есть c onLoadComplete:

Код:

var loadListener:Object = new Object();
    loadListener.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number):Void {
    target_mc._xscale = 10;
    target_mc._yscale = 10;
}

var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);

var mc:MovieClip = this.createEmptyMovieClip("mc", 2);
mc._lockroot = true;
mcLoader.loadClip("scen.swf", mc);


iNils 27.05.2008 17:57

Не позволю :)
_xscale и _yscale доступны еще до начала загрузки. Пример неудачный. Поставьте _width и _height и посмотрите на результат.

Alex_beginner 27.05.2008 18:09

Да! Вы правы. Но все же строка
Цитата:

onLoadInit - загруженный клип проинициализировался (с этого момента доступны его ширина, высота и его переменные и свойства)
несовсем точна. Ведь некоторые переменные и свойства уже доступны ранее.:)

iNils 27.05.2008 18:21

Да нет, все верно я описал, ведь писал про загружаемый клип, но грузится, то он не в пустоту, а в мувкилип, который существует и тоже имеет методы и свойства. Только вот часть из них замещается загруженным клипом, а часть наследуется.


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

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