AS3 - локальное соединение между мастером AIR и отправителем SWF - PullRequest
0 голосов
/ 18 сентября 2018

Мне не удается использовать локальное соединение между основным файлом, установленным для AIR, и подчиненным файлом для FlashPlayer (обычный SWF).Вот код двух тестовых файлов ...

Файл мастера / получателя:

// test-AIR.fla
import flash.display.Loader;
var loadK1:Loader=new Loader();
loadK1.load(new URLRequest("K1/test-SWF.swf"));
addChild(loadK1);
var localConnection:LocalConnection = new LocalConnection();
localConnection.allowDomain("*");
localConnection.client = this;
localConnection.connect("_connectionName");
function onMethod(timeString:String):void {
    trace("onMethod called at: " + timeString);
    }

Отправитель ...

// K1/test-SWF.fla
var localConnection:LocalConnection = new LocalConnection();
localConnection.send("_connectionName", "onMethod");
trace("END of test-SWF.swf");

Тогда вотвывод, показывающий, что onMethod не вызывается:

[SWF] test-AIR.swf - 1170 байт после распаковки

K1 / test-SWF.swf - 625 байт после распаковки

КОНЕЦ test-SWF.swf [SWF]

У меня такое чувство, что я все перепробовал.Может кто-нибудь указать, что не так или что мне не хватает?Спасибо,

1 Ответ

0 голосов
/ 20 сентября 2018

Поскольку оба SWF-файла находятся в одном и том же домене безопасности, они могут получать доступ к спискам отображения друг друга без ограничений. Таким образом я исправил проблему, вызвав метод через иерархию списка отображения:

MovieClip(this.parent.parent).onMethod();

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

@ Organis спасибо за вашу помощь!

...