Вход

Просмотр полной версии : SharedObject есть ли возможность прочитать из другого flash


almaz73
12.11.2008, 12:47
SharedObject есть ли возможность прочитать из другого flash

Ситуация такая. В текстовое поле я загружаю через <img src='flash.swf'> флаш, в которую нужно передать параметры с основного флаша..

Думал передать через SharedObject..

Как еще можно передать параметр в загружаемый в текстовое поле флаш-мувик?

flash33
12.11.2008, 13:42
Не надо SharedObject.
Используйте в теге <img> аттрибут id для идентификации клипа, загружаемого в текстовое поле для последующего доступа к его свойствам
mainText.htmlText = "Ла бу да ла бу да <img id='clip' src='text.swf' />ла бу да ла бу да";
После загрузки text.swf в текстовое поле (не раньше) вы можете присвоить текстовому полю внутри этого text.swf (к примеру textField) любое значение
mainText.clip.textField.text = "Привет!";

almaz73
12.11.2008, 15:41
спасибо flash33
Но теперь каким макаром узнать загрузился рисунок или не загрузился.. может просто через задержку это делать, не хотелось бы
С задержкой работает.. а вдруг если будет много закачиваться времени не достаточно будет

flash33
12.11.2008, 21:16
Clip.onInit...

almaz73
13.11.2008, 10:53
не получается, пример не дадите.. у меня actionScript2

flash33
13.11.2008, 13:12
Да, это не из той оперы..
Можете сделать 2-мя способами: инициализировать загрузку клипа обращением к какому либо методу главного flash ролика из самого загружаемого клипа. Для этого на его 1-ом кадре (text.swf) создайте
this.onEnterFrame = init;
function init(){
_root.initClip();//сообщаем родителю что мы загрузились
this.onEnterFrame = null;
}
На _root главного flash ролика где текстовое поле (main.swf) создайте
function initClip(){
mainText["clip"].textField.text = "Привет";
//mainText - имя основного тектового поля
//textField - имя текстового поля в подгруженном клипе
// методы и свойства доступны
}
Во втором способе нечто похожее создаете в main.swf..
this.onEnterFrame = init;
function init(){
if (mainText["clip"].textField != undefined) {//здесь проверяется доступны ли
//свойства подгруженного клипа и если да то...
trace("Инициализация произошла");
mainText["clip"].textField.text = "Привет";
this.onEnterFrame = null;
}
}
В этом случае ничего менять в txt.swf не надо

almaz73
13.11.2008, 14:13
вы мне очень помогли, спасибо!

flash33
13.11.2008, 16:56
Переделайте (2 вариант)
init();
function init(){
if (mainText["clip"].textField != undefined) {//здесь проверяется доступны ли
//свойства подгруженного клипа и если да то...
trace("Инициализация произошла");
mainText["clip"].textField.text = "Привет";
this.onEnterFrame = null;
} else this.onEnterFrame = init;
}