繁体   English   中英

swfobject,FB.ui回调,AS3 ExternalInterface和IE无法正常工作

[英]swfobject, FB.ui callback, AS3 ExternalInterface and IE not working correctly

我使用swfobject加载了swf。 在AS3中,我打了一个电话,呼叫FB.ui以显示付款窗口。 至此,一切正常。 付款完成后,FB.ui会调用该回调,该回调应回AS3。 我得到了对swf对象的引用,但是实际的方法调用失败,因为Object不支持属性或方法。

我一直在阅读有关此内容的所有文章,但找不到任何帮助。 在我看来,getElementById没有返回正确的对象。

这仅在IE中发生。 Chrome和FireFox可以正常工作。

var attributes = {};            
        attributes.id = "game";
        attributes.name = "game";
        attributes.align = "middle";
        swfobject.embedSWF(
            "game.swf", "flashContent",
            "800", "600",
            swfVersionStr, xiSwfUrlStr,
            flashvars, params, attributes);
        // JavaScript enabled so display the flashContent div in case it is not replaced with a swf object.
        swfobject.createCSS("#flashContent", "display:block;text-align:left;");

.....

FB.ui(obj, function(data) { 

          if(!data) {
        alert("There was an error processing your payment. Please try again!");              
        return;
          }

          //  alert('called back order');

          // IMPORTANT: You should pass the data object back to your server to validate
          // the contents, before fulfilling the order.
            var gameVar = document.getElementById("game");
            //alert(gameVar);
            //console.log(Object.prototype.toString.call(gameVar));
        //alert(gameVar.purchaseCallback);
          gameVar.purchaseCallback(data);
          //console.log("Payment verification complete");


        });

          //handle errors here
         //alert('some error');

         return false;
    }

怪异的是,如果我在页面上添加以下内容,则单击链接即可。 功能test(){var game = document.getElementById(“ game”); 警报(game.purchaseCallback); 测试

因此,事实证明问题在于可见性。 由于FB.ui会在显示FB.ui对话框时更改对象的可见性,然后在处理对话框时将其更改回原来的状态,因此Flash应用程序会丢失其ExternalInteface。

为了解决这个问题,我添加了:

<style>
    #game {
        visibility: visible !important;
    }
</style>

我应该补充一件事。 在IE 8中,这可能无法正常工作。 我对swf的参数进行了以下更改,现在似乎可以使用所有内容。

params.wmode = "opaque";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM