ExternalInterface - хороший подход.
Возможно, хорошее начало для понимания основных понятий - этоответ здесь при переполнении стека:
Давайте уточним немного: 1. Загрузчик swf, мы будем называть родительским.2. SWF, загруженный родителем, мы будем называть дочерним.
Дочерний объект содержит строку, и вы хотите, чтобы родительский элемент мог читать эту строку> Итак ... Дочерний объект должен определить публичную переменнуюдля строки.(Это означает, что вы должны использовать файл Class для него, так как вы не можете объявить свойство общедоступным на временной шкале.)
Наконец, родитель попытается получить это свойство.Вы можете захотеть обернуть это в try / catch для обработки случаев, когда строка не будет присутствовать.
Вот пример дочернего класса.
package
{
import flash.display.Sprite;
/**
* ...
* @author Zach Foley
*/
public class Child extends Sprite
{
public var value:String = "This is the child Value";
public function Child()
{
trace("Child Loaded");
}
}
}
А вот родительский загрузчиккласс:
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
/**
* ...
* @author Zach Foley
*/
public class Parent extends Sprite
{
private var loader:Loader;
public function Parent()
{
trace("PArent Init");
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
loader.load(new URLRequest("child.swf"));
}
private function onLoaded(e:Event):void
{
trace("Child Loaded");
trace(loader.content['value']);
}
}
}
Выходные данные будут: PArent Init Дочерний объект Loaded Child Loaded Это дочерний элемент Значение