标签: externalinterface

什么版本的IE使用窗口[objectName]而不是window.document [objectName]?

我正在尝试使用Javascript回调到我的页面中嵌入的Flex应用程序.通过一些示例,我看到这段代码用于获取Flex应用程序的引用:

// Get the reference:
function thisFlexApp(appName) {
    if(navigator.appName.indexOf ('Microsoft') != -1) {
        return window[appName];
    }
    else {
        return window.document[appName];
    }
}

// Use it:
var someVariable = thisFlexApp('NameOfFlexApp').callbackMethod();
Run Code Online (Sandbox Code Playgroud)

我使用了那个方法,但是使用IE9我得到错误,表明"thisFlexApp"调用不起作用.事实证明window.document [appName]在IE9中工作,但是窗口[appName]没有.由于我不希望我的政府客户使用IE9,我想知道这种方法的IE版本实际上会起作用的是什么版本?是否有另一个测试更好地使用而不是上面假设所有版本的IE以某种方式工作?提前致谢.

javascript apache-flex internet-explorer callback externalinterface

3
推荐指数
1
解决办法
704
查看次数

使用ExternalInterface和IE从JavaScript获取Flash中的当前URL

我正在尝试获取Flash播放器所在的当前URL.不是.swf文件的URL,而是浏览器指向的URL.到目前为止我用过:

var st:String = ExternalInterface.call("window.location.href");
Run Code Online (Sandbox Code Playgroud)

不幸的是,这在IE中不起作用.从我的研究中,我可以看出它无论如何都不适用于IE.

我在互联网上发现的唯一另一件事就是在标签上加上"id"标签.

所以我试图找出是否和/或如何:

  1. 以某种方式使用IE和其他浏览器中的ExternalInterface进行调用,以返回给我当前的URL.

    要么

  2. 在标记上标记id ="PA"属性,让AS3读取该标记并将其作为String引入,而不使用JavaScript

我的限制是我只能将标记添加到HTML中,并且不能添加任何JavaScript函数.这必须在AS3中严格完成.

不管怎样,我需要知道我在哪个URL.任何帮助是极大的赞赏.

javascript internet-explorer actionscript-3 externalinterface

2
推荐指数
1
解决办法
6231
查看次数

FlashVars或ExternalInterface

到目前为止,我一直在使用ExternalInterface,在极少数情况下我需要与HTML进行通信.

  • FlashVars被认为是更好/更差或更新/更老的做法吗?
  • 或者你什么时候使用其中一个?我应该遵循什么逻辑来帮助我决定使用哪一个?

apache-flex flash adobe actionscript-3 externalinterface

2
推荐指数
1
解决办法
631
查看次数

ExternalInterface.call无效

我试图ExternalInterface.call()从我的SWF里面.

请注意,调用来自我嵌入到另一个SWF(_root我无法控制的SWF)的SWF内部.

这是我的JavaScript:

function player_DoFSCommand(command, args) 
{
    args = String(args);
    command = String(command);

    var arrArgs = args.split(g_strDelim);

    switch (command)
    {
        case "CC_ClosePlayer":

            console.log("yo");
            break;

        default:
            // alert(command);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的AS2代码:

import flash.external.ExternalInterface;

var quiz = _root;

quiz.g_mcFrame.mcFinish.swapDepths(quiz.getNextHighestDepth());
quiz.g_mcFrame.mcFinish._visible = false;
quiz.oSlide.m_oInteraction.m_oVariableMgr.m_arrBoolResumeData = false;

var arrVars:Object = quiz.oSlide.m_oActionHandler.m_oFrame.m_oVariableMgr.m_arrVariables;
var args:Array = [
    arrVars[2].m_nNumber, // Points awarded
    arrVars[3].m_nNumber, // Max points
    arrVars[5].m_nNumber, // Pass percentage
    arrVars[6].m_nNumber, // Pass points
    arrVars[7].m_nNumber, // Score percent
    arrVars[10].m_strString // Result
]; …
Run Code Online (Sandbox Code Playgroud)

javascript flash actionscript actionscript-2 externalinterface

2
推荐指数
1
解决办法
6703
查看次数

ExternalInterface在IE中不起作用

我试图从javascript调用flash对象中的一个动作:

如:

function testExternalConnection(str:String):Void {
    _root.debug.htmlText = "testExternalConnection ok";
}
ExternalInterface.addCallback("testExternalConnection", this, testExternalConnection);
Run Code Online (Sandbox Code Playgroud)

JS:

var movie = getFlashMovie("ap1_mod_hidden")
movie.testExternalConnection();
Run Code Online (Sandbox Code Playgroud)

function getFlashMovie(movieName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}
Run Code Online (Sandbox Code Playgroud)

我使用swfobject包含我的flash:

<span id="ap1_mod_hidden"></span>
<script type="text/javascript">
    // Setting up the flash player
    var flashvars = {
        mp3Path: "stop",
        artistName : "",
        trackName : ""
    };
    var params = {
        codebase: 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
        src: '/flash/ap1_mod.swf',
        quality: 'high',
        pluginspage: 'http://www.macromedia.com/go/getflashplayer',
        scale: 'showall',
        devicefont: 'false',
        bgcolor: '#999999',
        name: 'ap1_mod', …
Run Code Online (Sandbox Code Playgroud)

javascript flash internet-explorer externalinterface

1
推荐指数
1
解决办法
5368
查看次数

同一网页上的2个Flex/Flash应用之间的通信

在同一网页上的2个Flex/Flash应用程序之间进行通信的最佳方式是什么?我需要一个第三方Flash应用程序来调用我的Flex 4应用程序上的一个功能(他们已经准备好如何指定他们的第三方应用程序).我ExternalInterface.call("javascript_function", arguments)广泛使用.我知道有一个从Javascript到Actionscript的桥梁.所以我想我可以从他们的flash应用程序 - > javascript函数 - > flex bridge - >我的flex应用程序.我必须通过JavaScript吗?有没有更好的办法?

apache-flex flash actionscript-3 externalinterface flex4

1
推荐指数
1
解决办法
270
查看次数

AS3 ExternalInterface.call,为什么它不适用于Chrome或IE?

import flash.external.ExternalInterface;
var pageURL:String = ExternalInterface.call('window.location.href.toString');
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎适用于Firefox,但是当我尝试使用Chrome或IE时它不起作用(它会导致错误并停止swf的执行).

任何提示?

actionscript-3 externalinterface

1
推荐指数
2
解决办法
1万
查看次数

在swiffyobject中调用flash ExternalInterface

我有一个使用ExternalInterface与javascript通信的flash.我已经使用swiffy将其转换为HTML5.如何使用javascript调用我在flash中创建的方法?

javascript flash externalinterface google-swiffy

1
推荐指数
1
解决办法
2342
查看次数

externalinterface - 从SWF调用javascript

HI,

我试图从我的动作脚本代码调用一个javascript函数,但它没有工作;

AS3:

if (ExternalInterface.available)
  {
  try
  {
    ExternalInterface.addCallback("changeDocumentTitle",null);
  } 
  catch(error:Error)
Run Code Online (Sandbox Code Playgroud)

js(使用swfobject的内部速度文件)

function changeDocumentTitle() 
    {
        alert('call from SWF');
    }
Run Code Online (Sandbox Code Playgroud)

有谁知道会发生什么?

apache-flex externalinterface

0
推荐指数
1
解决办法
4351
查看次数

外部接口不可用

我在使用Flash播放器10的FlashDevelop中测试程序.需要externalInterface才能工作,但在运行这个简单的测试程序时,它会显示"ExternalInterface is available".这可能是什么问题?如何使ExternalInterface工作?

<mx:Script>
    <![CDATA[
        import mx.controls.Alert;

        private function init():void {
            if (ExternalInterface.available) {
                ExternalInterface.call("alert",
                        "ExternalInterface is available");
            } else {
                Alert.show("ExternalInterface is not available");
            }
        }
    ]]>
</mx:Script>

<mx:ApplicationControlBar dock="true">
    <mx:Button id="button"
            label="ExternalInterface.available"
            click="init();" />
</mx:ApplicationControlBar>
Run Code Online (Sandbox Code Playgroud)

Ps - 顺便说一下,当我在浏览器中运行它时,此脚本显示"外部接口可用".它只在我在Flash Player 10中运行它时才可用.

flash actionscript-3 externalinterface

0
推荐指数
1
解决办法
6155
查看次数

从flash返回值到javascript

如何将AS3中的值返回到javascript.我从JS调用AS3方法并希望AS3方法返回一个字符串:

//javascript
var string = swfObject["abcmethod"](arg1);
Run Code Online (Sandbox Code Playgroud)

我知道的唯一方法是添加一个回调方法,该方法在JS中从闪回调用.有没有更好的办法?

javascript callback actionscript-3 externalinterface

0
推荐指数
1
解决办法
2773
查看次数