2010-04-02 3 views
0

FBJS 브리지에 연결하려고합니다. 그것은 나에게 다음과 같은 오류를주고 계속합니다. 하나의 연결 만 열면 다른 창이 열리지 않습니다. 내가 로컬 다음 줄을 실행하려고하면 페이스 북 페이지에플래시 : 로컬 연결로 인해 오류가 발생합니다.

public class fbjsTest extends Sprite 
{ 
    private var connection:LocalConnection = new LocalConnection(); 
    private var connectionName:String = LoaderInfo(root.loaderInfo).parameters.fb_local_connection; 
    public function fbjsTest() 
    { 
     connection.connect(connectionName); 
    } 
} 

가 null

LoaderInfo(root.loaderInfo).parameters.fb_local_connection 

어떤 아이디어를 반환

ArgumentError: Error #2082: Connect failed because the object is already connected. 
at flash.net::LocalConnection/connect() 
at BabyVille()[C:\Documents and Settings\user\Desktop\babyville\flash\Main Project\src\BabyVille.as:56] 

이 내 코드?

+0

그냥 내 대답을 편집;) –

+0

이 상황을 처리하는 데 사용할 수있는 connection.isOpen() 및 connection.close() 메소드가 있으면 좋을 것입니다. 다른 곳에서 읽은 솔루션은 알려진 연결 이름을 사용하여 연결을 만든 다음 두 인스턴스에 임의의 이름을 전달한 다음 알려진 이름 연결을 닫고 임의 연결로 다시 연결합니다. 아이디어는 이름을 재사용하는 것을 피하는 것입니다. 가장 좋은 방법은 종료시 연결을 닫는 옵션을 사용하는 것입니다. 실제로 플래시 플레이어는이 작업을 수행해야하지만하지 않습니다. –

답변

1

캐시 된 LocalConnections에주의하십시오. 앱이 제대로 닫히지 않으면 연결은 계속 "연결"됩니다. 브라우저가 종료되었는지 확인하십시오. 또는 연결에 임의의 이름을 지정할 수도 있습니다 (응용 프로그램의 논리가 허용하는 경우). 머리 아파는 희망을!

편집 : 당신이 하나를 연결하는 것을 의미하지 않을에

잡아! 수신기 (브리지에 의해 처리되는 수신기)는 이미 연결되어있는 수신기입니다. FB 개발자 센터에서

예 :

var connection:LocalConnection = new LocalConnection(); 
var connectionName:String = LoaderInfo(this.root.loaderInfo).parameters.fb_local_connection; 

function callFBJS(methodName:String, parameters:Array):void { 
    if (connectionName) { 
     connection.send(connectionName, "callFBJS", methodName, parameters); 
    } 
} 

callFBJS("document.setLocation", ["http://someurl"]); 
+0

PC를 다시 시작하고 온라인 링크 만 실행하려고했습니다. 아직도 작동하지 않습니다. –

관련 문제