PDA

Просмотр полной версии : Как передать параметр в SWF, который подгружается в главный SWF


Lexx555
22.01.2007, 18:17
Добрый день всем!
У меня проблема. SWF-у, который подгружается в главный, необходима переменная xml_url - путь к XML документу, в котором содержаться необходимые данные. Как её ему передать? Через send не получается.
Т.е. отдельно из html документа, при запуске этого swf'а прописываются параметры и все работает, можно ли сделать из swf и передать эти параметры.Возможно ли это вообще?

Заранее спасибо.

CorC
22.01.2007, 19:01
грузи в основную свф, а в подчиненной пропиши

var path=_root.xml_url

или если там стоит _lockroot то

var path=_global.xml_url

не забыв в главной флешке забить в эти переменные значения

Lexx555
22.01.2007, 19:14
в том то и проблема, что кода загружаемой swf нет. Поэтому я могу только передать параметры

CorC
22.01.2007, 19:20
если она хочет точно xml_url, то грузи
при помощи FlashVars, а так лучше код иметь

Kikasso
22.01.2007, 19:25
используй MoviClipLoader для загрузки флешки.
по onLoadInit сажай переменную.

Lexx555
22.01.2007, 19:25
вся фишка именно в том, чтобы этот самый мувик вставить в основной с этим параметром. Сам мувик подгружается, но не работает как надо, т.е. он не заменяет основной, а внутри проигрывается

Lexx555
22.01.2007, 19:26
ща буду пробовать

Kikasso
22.01.2007, 19:28
_global.xml_url = path;
а потом грузи флешку.

Lexx555
23.01.2007, 12:46
не получается через _global.xml_url = path;

Kikasso
23.01.2007, 13:06
а path определил? тогда не знаю, ищите исходник подгружаемой флешки.

CorC
23.01.2007, 13:34
если у нее было прописано без глобала то
это и не помогло бы даже если path прописан верно

Kikasso
23.01.2007, 14:26
глобал он и в африке глобал.

CorC
23.01.2007, 14:47
нет, если внутр флешка не захочет брать глобал,
то как туда ей его не пехай не получится,
даже если ногой попробовать :)

Futs
23.01.2007, 15:12
Если файлы скомпилированны в разной версии плеера, то глобала будет два, будьте внимательны.

Kikasso
23.01.2007, 15:17
Да, не получается. Если обращеие идет с точками, это ничего не дает.
Можно попробовать мега костыль:
MovieClip.prototype.testVal = "только так";
var mc = this.createEmptyMovieClip("mc", 1);
trace (mc.testVal);
убиваем комара атомной бомбой ))

CorC
23.01.2007, 15:21
и что, загруженная свф в мс будет использовать эту переменную?
хотя вполне может быть

Kikasso
23.01.2007, 15:34
и что, загруженная свф в мс будет использовать эту переменную?
хотя вполне может быть
Это уже будет не переменная, а свойство класса MovieClip.

Object.prototype.testVal = "только так";
var mc = this.createEmptyMovieClip("mc", 1);
trace (mc.testVal);
var arr = new Array();
trace (arr.testVal);
var lv = new LoadVars();
trace (lv.testVal);
var str = "";
trace (str.testVal);
Водородная бомба в разделе "для начинающих" ))

Lexx555
23.01.2007, 17:30
спасибо за ответы, я все переделал и сделал просто свой код, и там все работает.

Kikasso
23.01.2007, 17:32
Это самое мудрое решение. Респект!

CorC
23.01.2007, 18:35
и стоило из-за 1.5 часов работы тратить 2 дня на форуме? :)

Lexx555
23.01.2007, 18:58
а я не тратил, делал, выходит не зря, но надо же было все варианты испробовать. Вдруг проще есть. :)