Связь между Flash и C # с использованием ExternalInterface без текста TLF - PullRequest
1 голос
/ 15 июня 2010

Я общаюсь из флэш-приложения с помощью команды, подобной следующей: ExternalInterface.call ("hello", "world")

Это обрабатывается на стороне C # чем-то вроде:

string swfPath = Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + "test.swf";
this.axFlash.LoadMovie(1, swfPath);
this.axFlash.FlashCall += new AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEventHandler(axFlash_FlashCall);

И четная функция объявлена ​​как

void axFlash_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
{
}

. AxFlash_FlashCal вызывается нормально, если на экране есть текстовое поле, в котором установлено использование текста TLF.(подойдет любое текстовое поле, без конкретного идентификатора).Без текстового поля даже не сработает.(Даже если для ExternalInterface.Avaliable задано значение true)

Я пытался использовать CS4 и CS5 для публикации, используя в качестве выходных данных Flash 10 и 9.Ничто из этого не имеет значения.

Я использую AS3 и .NET 4.0.Кто-нибудь сталкивался с этим раньше или знает, зачем нужен текст TLF, чтобы это работало?

1 Ответ

1 голос
/ 15 июня 2010

Я обнаружил, что это вызвано тем, что текст TLF заставляет весь SWF-файл загружаться перед его выполнением. Без текста TLF он пытается передать поток SWF, что, очевидно, нарушает ExternalCommunication.

Кто-нибудь знает простой способ принудительной предварительной загрузки? На данный момент мое единственное рабочее решение - предварительно загрузить один SWF-файл другим.

...