Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ExternalInterface和Javascript不能协调工作_Javascript_Flash_Actionscript_Externalinterface - Fatal编程技术网

ExternalInterface和Javascript不能协调工作

ExternalInterface和Javascript不能协调工作,javascript,flash,actionscript,externalinterface,Javascript,Flash,Actionscript,Externalinterface,前几天我发布了一篇关于我遇到的Flash/Javascript问题的帖子。请看这个: 我知道我想如何修复它,但我对actionscript一点也不熟悉。从我开发自己的时候起,我就避免了像瘟疫一样的adobe产品,因为购买和使用他们的产品要花很多钱,但大雇主喜欢它并为此付费,所以我就在这里。我们的“闪电侠”刚离开团队,我继承了这个问题。如果你读了我的另一篇文章,你就会知道发生了什么,所以我会继续。我想从actionscript对我的javascript进行一个简单调用,我的另一篇文章引用了这个调用

前几天我发布了一篇关于我遇到的Flash/Javascript问题的帖子。请看这个: 我知道我想如何修复它,但我对actionscript一点也不熟悉。从我开发自己的时候起,我就避免了像瘟疫一样的adobe产品,因为购买和使用他们的产品要花很多钱,但大雇主喜欢它并为此付费,所以我就在这里。我们的“闪电侠”刚离开团队,我继承了这个问题。如果你读了我的另一篇文章,你就会知道发生了什么,所以我会继续。我想从actionscript对我的javascript进行一个简单调用,我的另一篇文章引用了这个调用。我特别想从actionscript内部调用CheckboxCollection函数。我不需要从actionscript内部传递任何参数或类似的东西。我所需要做的就是在flash加载完成后运行该功能。javascript函数将处理我所需要的一切,我只需要从actionscript调用它,使一切工作协调一致。我是在教我自己所有的东西Adobe和ActionScript(我很沮丧),但我真的没有线索从哪里来做这项工作。我已经阅读了adobe文档,但在更好地掌握该语言之前,我仍然迷茫。我把我的大部分动作脚本都复制到了这里,但我确实遗漏了所有必须处理鼠标悬停事件的内容,因为我的问题不是鼠标悬停,它们都像一个符咒一样工作。提前谢谢! -------------------------------------------------------------------------------------------更新:为了完成其他一些事情,我不得不停止这方面的工作,但我回到了第一步。无论我做什么,我都没有成功的机会。我在这里尝试了所有的建议,尝试了所有我知道如何做的事情,但我没有运气。如果有人能看看这篇文章和我链接到的那篇文章(这是本文的配套javascript),看看他们能想出什么。我已经尝试了这么多不同的代码迭代,把我所有的尝试都放在不起作用的例子上是没有用的,谢谢大家

/*
JavaScript External Calls
*/
function RegisterExternalCalls():void
{ 
if(ExternalInterface.available)
    ExternalInterface.addCallback("HighlightWheel", HighlightWheel);
}
function HighlightWheel($args:String,$show:String,...arguments):void
{   
$args = $args == "financial"?"center":$args;
var _obj:Object = ObjectCollection[$args].Objects.Click;


if(ObjectCollection[$args].Objects.currentObject.name.toLowerCase() == "center")
{
    bcenter = true;
    _obj =  ObjectCollection[$args].Objects.currentObject.getChildByName("financialBtn");
}

if(CBool($show))
{

    if(arguments.length > 0 && arguments[0] == "TITLE") // || $args == "center")
        _obj.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OVER));
    else
    {

        if(ObjectCollection[$args].labels.Label.toUpperCase() === "CENTER")
        {
            ObjectCollection["income"].Objects.Click.gotoAndPlay(2);
            ObjectCollection["property"].Objects.Click.gotoAndPlay(2);
            ObjectCollection["education"].Objects.Click.gotoAndPlay(2);
            ObjectCollection["health"].Objects.Click.gotoAndPlay(2);
            ObjectCollection["retirement"].Objects.Click.gotoAndPlay(2);

        }
        else
        {               
            _obj.gotoAndPlay(2);

        }
    }


}
else
{
    if(arguments.length > 0 && arguments[0] == "TITLE")
        _obj.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_OUT));
    else
    {
        if(ObjectCollection[$args].labels.Label.toUpperCase() === "CENTER")
        {
            ObjectCollection["income"].Objects.Click.gotoAndPlay(11);
            ObjectCollection["property"].Objects.Click.gotoAndPlay(11);
            ObjectCollection["education"].Objects.Click.gotoAndPlay(11);
            ObjectCollection["health"].Objects.Click.gotoAndPlay(11);
            ObjectCollection["retirement"].Objects.Click.gotoAndPlay(11);


        }
        else
        {
            _obj.gotoAndPlay(11);

        }
    }
}
}

function CallExternalFunction($label:String,$show:Boolean = true):void
{
var lbl:String = $label.toLowerCase().indexOf("btn") > -1?"financialTitle":$label     + "Title";

    if(ExternalInterface.available)
         ExternalInterface.call("COUNTRY.Financial.highlightProductGroup",lbl,$show);


}

function CBool($value:String):Boolean
{
if($value == "true")
    return true;
else
    return false;
}

function PrintSetup($evt:MouseEvent):void
{
var pjob:PrintJob = new PrintJob(); 
if(pjob.start())
{       
    pjob.addPage(wheel);

    pjob.send();
}

}

我相信您可以通过ExternalInterface.call实现这一点,并传递应该调用的javascript函数,如下所示:

ExternalInterface.call( "CheckboxCollection" )
如果需要传递参数:

ExternalInterface.call( "CheckboxCollection", value1, value2 )

如需了解更多信息,如果在JS中不需要:

var CheckboxCollection = function()
尝试将其更改为:

function CheckboxCollection()
即使看起来(如果JS仍然是一样的)您有任何嵌套的东西。也许你也可以这样称呼它(但我从未尝试过类似的方法):

ExternalInterface.call(“SOME.PLACE.quotereRequest.CheckboxCollection”)