![]() |
[as] Вызов swf с форматированным текстом
Что было: в _root грузился некий mc.swf, при наведении на который он вызывал в _root txt.swf, в котором было организовано текстовое поле и загружена в это поле переменная. В _root был контейнер под txt.swf. Работало.
Что надо: получить в _root txt.swf с обработанным текстом. Что есть: не грузится уже отформатированный текст, хотя в самом txt.swf все нормально. В txt.swf на загрузку и форматирование применен обработчик onData. В рут переменная поступает, но не отображается. Если onData убрать, то текстовое поле отображается, но не форматированным. |
слишком запутанное описание.
лучше покажи код... не понятно, что значит "не грузится отформатированный текст". если переменная в рут передается, то как она "не отображается". |
код в запускаемом run.swf
Код:
createEmptyMovieClip("con", 2); //грузим swf при наведении на которую загружается ld.swf в run.swfКод:
_root.fon.loadMovie("ld.swf", 5);Код:
this.onData = function(){Пробовал делать функцию в ld.swf глобальной и вызывать ее в run. но окончательно запутался :mad: Может подскажете работоспособный способ? Тут советует товарищ onLoadInit попробовать... что скажете? |
во-первых, мне кажется, у тебя система какая-то чересчур запутанная. все грузят что-то свое в разные клипы в разных свфках... мало того, какой-то клип в недрах грузит еще какие-то переменные. лучше организовать всё это проще: по крайней мере, чтобы загрузкой всего управляла одна свфка.
но если всё оставить как есть... - вызвал загрузку - файл загрузился - сработал код его первого кадра именно в таком порядке. заметь, код первого кадра срабатывает ПОСЛЕ окончания загрузки. поэтому создавать в первом кадре обработчик, который должен сработать при окончании загрузки, бессмысленно... загрузка-то уже завершилась. :) поэтому onData у тебя просто не срабатывает. но даже если бы сработала - это был бы бардак. :) потому что онДата реагирует и на loadMovie и на loadVariables... а ты в самой онДате loadVariables и запускаешь. :) и второй момент - текстформат нужно задавать ПОСЛЕ того, как ты записал в текстовое поле. а ты это делаешь ДО того, как текст попал в текстовое поле (потому что переменные естесственно не грузятся мгновенно). итого: 1. убрать онДату 2. использовать setNewTextFormat() вместо setTextFormat() 3. лучше юзать объект LoadVars вместо loadVariables. например так: Код:
var loader = new LoadVars(); |
Все работает! Но теперь можно в run изменить код на
Код:
createEmptyMovieClip("fon", 16);//место под ld.swfКод:
_root.createTextField("tf", 0, 0, 0, 230, 420); |
| Часовой пояс GMT +4, время: 16:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.