2016-09-15 10 views
0

LocalConnectionを使用して、別のbroswerウィンドウ(最初に開いたページですべて開く)にロードされた3つのswf間の通信を設定しようとしています。私はswf間通信には新しく、チュートリアルではhereとなっています。AS3 - LocalConnectionが動作しないと思われる

私はテストのためにxamppサーバーからこれらを実行しています。

本質的に、私はswfsを3つ持っています。私は1つの「マスター」swfと2つの「スレーブ」swfを持っています。マスターswfが起動すると、新しいswfファイルが新しいウィンドウに開きます。マスターでボタンをクリックすると、スレーブの1つのテキストを更新しようとしています。後でもっと複雑なことが起こります。私はLocalConnectionsを最初に見つけようとしています。 'master.swf' で

(タイムライン上の)コード:スレーブ1で

import flash.net.URLRequest; 
import flash.events.Event; 

//Used as a flag to open each slave window, one of the first frame, one on the second frame, as using navigateToURL twice in a row doesn't seem to work. 
var frameCount = 0; 

//This is what I'm attempting to send over the LocalConnection. 
var messageText = "it worked!"; 

var slave1url:URLRequest = new URLRequest("slave1.html"); 
var slave2url:URLRequest = new URLRequest("slave2.html"); 

//Creates a one-way connection to communicate with JUST slave1 
var slave1OutboundConnection:LocalConnection = new LocalConnection(); 

this.addEventListener(Event.ENTER_FRAME, Update); 

slave1Button.addEventListener(MouseEvent.CLICK, SendMessageToSlave1); 
slave1Button.buttonMode = true; 

//Send a message to slave1 via the slave1OutboundConnection 
function SendMessageToSlave1(e:Event){ 
    slave1OutboundConnection.send("masterToSlave1Connection", "UpdateTextFromCommunication", messageText); 
} 

function Update(e:Event){ 

    //Open the slave1 page on the first frame, and the slave2 page on the second frame. 
    if(frameCount == 0){ 
     navigateToURL(slave1url, "_blank"); 
     frameCount++; 
    } else if (frameCount == 1){ 
     navigateToURL(slave2url, "_blank"); 
     frameCount++; 
    } 

} 

var masterInboundConnection:LocalConnection = new LocalConnection(); 

masterInboundConnection.allowDomain("*"); 

masterInboundConnection.connect("masterToSlave1Connection"); 

function UpdateTextFromCommunication(receivedArguments){ 
    displayText.text = receivedArguments; 
} 

私は、各HTMLページにカスタムJavaScriptを少しも持っていますページのサイズと位置を設定するには、私はそれが問題ではないと考えています:

<script> 
     //Get the width of the user's monitor 
     var resolutionWidth = window.screen.availWidth; 

     //Get the height of the user's monitor (minus the height of the task bar) 
     var resolutionHeight = window.screen.availHeight; 

     //First screen is 0, second is 1, third is 2, etc. 
     var screenNumber = 2; 

     //If this screen is not displayed on the primary monitor, add 40 pixels for the lack of the taskbar on other monitors 
     if(screenNumber > 0){ 
      resolutionHeight += 40; 
     } 

     //Maximize the window 
     this.resizeTo(resolutionWidth, resolutionHeight); 

     //Move the window to the appropriate display 
     this.moveTo(resolutionWidth * screenNumber, 0);   
    </script> 

私は、コミュニケーションを引き起こすために、何も起こらないように見える。

Windows 7上のlocalhost xamppサーバー上のIE11でこれらのswfを含むhtmlページを実行しています。CS5.5で作成されたSwfs。

着信接続のそれぞれにおいて

答えて

0

、私はコードを一行も行方不明になった。予想通り

masterInboundConnection.client = this; 

今すぐすべてが動作しています。

関連する問題