2010-06-15 5 views
1

Je communication à partir d'une application flash en utilisant une commande comme suit: ExternalInterface.call (« bonjour », « monde »)La communication entre Flash et C# en utilisant ExternalInterface sans texte TLF

Ceci est traité sur la C# fin par quelque chose comme:

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

Et la même fonction est déclarée comme

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

le axFlash_FlashCal est appelé bien, aussi longtemps que le re est une zone de texte à l'écran définie pour utiliser le texte TLF. (n'importe quel textbox fera, aucun ID spécifique). Sans la zone de texte, les pairs ne se déclencheront pas. (Même si ExternalInterface.Avaliable est défini sur true)

J'ai essayé d'utiliser CS4 et CS5 pour publier, en utilisant à la fois Flash 10 et 9 comme sortie. Aucune de ces choses n'a fait la différence. J'utilise AS3 et .NET 4.0. Quelqu'un at-il déjà rencontré ce problème ou a-t-il une idée de la raison pour laquelle le texte TLF est nécessaire pour que cela fonctionne?

Répondre

1

J'ai découvert que cela est dû au fait que le texte TLF force le chargement complet du fichier SWF avant de l'exécuter. Sans le texte TLF, il essaye de diffuser le fichier SWF, ce qui semble rompre ExternalCommunication.

Est-ce que quelqu'un connaît un moyen simple de forcer une précharge? Ma seule solution de travail à ce stade est d'avoir un SWF précharger un autre.

Questions connexes