通信

2010-06-15 39 views
1

我从Flash应用程序中使用如下命令通信: ExternalInterface.call(“你好”,“世界”)通信

这是在处理通过像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被称为细,只要re是设置为使用TLF文本的屏幕上的文本框。 (任何文本框都可以,没有具体的ID)。没有文本框甚至不会触发。 (即使ExternalInterface.Avaliable设置为true)

我试过使用CS4和CS5发布,同时使用Flash 10和9作为输出。这些事情都没有改变。

我正在使用AS3和.NET 4.0。有没有人遇到过这种情况,或者有任何想法为什么需要TLF文本才能工作?

回答

1

我发现这是由于TLF文本在执行之前强制加载整个SWF文件所致。如果没有TLF文本,它会尝试对SWF进行流式处理,这显然会中断ExternalCommunication。

有谁知道一个简单的方法来强制预加载?我现在唯一的工作解决方案是让一个SWF预加载另一个。