Facebook 앱에서 Flash 앱을 설정하고 ExternalInterface를 사용하여 JavaScript 함수를 호출 한 다음 첫 번째 함수가 완료되면 JavaScript에서 Flash 함수를 호출합니다.Facebook 앱 오류가 한 사용자에게 표시되지만 다른 사용자에게는 표시되지 않습니다.
this.dBug.text += "\ngetting user albums...\n"
var usrAlbums:Array = new Array();
var pageLimit:Number = 48;
var pageOffset:Number = 0;
this.dBug.text += "\ttotal albums before call: " + usrAlbums.length + "\n";
콜백 기능 : 자바
this.dBug.text += "\tadding getAlbumResponse callback to ExternalInterface\n";
ExternalInterface.addCallback('getAlbumResponse', getAlbumResponse);
this.dBug.text += "\tcreating getAlbumResponse callback\n";
function getAlbumResponse(rtrn):void{
dBug.text += "\nresponding to album get...\n";
this.dBug.text += "\t\t\tresult: " + rtrn['data'] + "\n";
var album:Array = rtrn['data'];
this.dBug.text += "\t\tadding objects to usrAlbums array...\n";
for(prop in rtrn['data']){
usrAlbums.push(new Array(album[prop], new Array()));
this.dBug.text += "\t\t\tadded " + album[prop] + ", new Array() to usrAlbums array\n";
++pageOffset;
this.dBug.text += "\t\t\t\talbumCount: " + pageOffset + "\n";
}
this.dBug.text += "\tcheck for more albums\n";
if(pageOffset == pageLimit){
getAlbum(++pageOffset, pageLimit);
}else{
this.dBug.text += "\t\ttotal albums after call: " + usrAlbums.length + "\n";
}
}
ExternalInterface를 호출 기능
플래시 & 바르 객체 스크립트 :
function getAlbum(offset:Number, limit:Number){
this.dBug.text += "\t\tcalling swfGetAlbum(/me/albums?offset=" + offset + "&limit=" + limit + ")...\n";
ExternalInterface.call('swfGetAlbum', '/me/albums?offset=' + offset + '&limit=' + limit);
}
를 호출 EI 기능 : 호스팅 페이지
getAlbum(pageOffset, pageLimit);
자바 스크립트 :
function swfGetAlbum(graph){
console.log('swfGetAlbum(' + graph + ')');
FB.api(graph, function(response){ console.log(response); swfGetAlbumCallback(response); });
}
var swfGetAlbumCallback = function(response){
console.log(response);
console.log(document.getElementById('app-root'));
document.getElementById('app-root').getAlbumResponse(response);
}
모두가 크롬, 사파리, 오페라와 내 페이스 북 계정으로 내 Mac에서 잘 작동 Firefox. 테스트 용 PC의 동일한 브라우저와 Internet Explorer에서도 작동합니다. 자바 스크립트 코드는 콜백을 시작하고 document.getElementById를 ('응용 프로그램 루트')를 실행하려고 할 때 내 친구가 자신의 페이스 북 계정을 사용하여 응용 프로그램을 테스트 몇 가지 이유를 들어
, 그는 오류를 가져옵니다 getAlbumResponse (응답).;. 그는 동일한 브라우저를 사용하여 자신의 PC에서 테스트를하고 있으며 모두 동일한 결과를 산출합니다. Chrome에서 오류는 으로 표시됩니다. 오류 : NPObject에서 메소드를 호출하는 중에 오류가 발생했습니다.더 재미있는 것들을 만들기 위해서; 이 오류는 Facebook 계정을 사용하여 내 컴퓨터에서 앱을 테스트 할 때 나타나고 내 Facebook 계정을 사용하여 그 컴퓨터에서 앱을 테스트 할 때 발생하지 않습니다.
나는 또한 다른 두 개의 Facebook 계정으로 앱을 테스트 할 수있었습니다. 그 중 하나는 Mac에서 Safari를 사용하고 다른 하나는 Chrome을 사용하는 내 친구의 아내의 PC에서 사용합니다. 이 두 가지 테스트 중 어느 것도 오류가 없습니다.
이 응용 프로그램에 대한 플래시의 대상 버전은 적어도 V11 (모든 테스트 기계/브라우저가 최신 플래시 플레이어를 가지고) 및 swfobject 2.
나는 완전히이 동작에 의해 당황하고를 사용하여 페이지에 삽입됩니다. 누구든지 이런 걸 보게 될까요?
미리 감사드립니다.
페이스 북의 https로 준수하기 위해 우리는 심지어이 시도 어둠 속에서