前几天我发布了一个关于我遇到的Flash / Javascript问题。请看这个: Issues with javascript properly loading and seeing everything 我知道我想如何解决它,但我不会以任何方式形成或熟悉动作脚本。我从我开发自己的时候就避免了像瘟疫一样的土坯产品,因为购买和购买他们的产品需要花费一大笔钱,但是大雇主喜欢它并付出代价所以我在这里。我们的“Flash”家伙刚离开团队,我继承了这个问题。如果您阅读我的其他帖子,您就知道发生了什么,所以我会继续前进。我想从actionscript到我的javascript taht进行一个简单的调用。我特别想从actionscript内部调用CheckboxCollection函数。我不需要在动作内部传递任何args或其他任何内容。我需要它做的就是在闪存完成加载后运行该功能。 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();
}
}
答案 0 :(得分:1)
我相信你是通过ExternalInterface.call来做到这一点并传递应该调用的javascript函数,如下所示:
ExternalInterface.call( "CheckboxCollection" )
如果你需要传递参数:
ExternalInterface.call( "CheckboxCollection", value1, value2 )
答案 1 :(得分:0)
如果在你的JS中你不一定需要这个:
var CheckboxCollection = function()
尝试将其更改为:
function CheckboxCollection()
即使看起来(如果JS仍然是相同的)你有任何嵌套。也许你可以尝试这样称呼(但我从来没有尝试过类似的东西):
ExternalInterface.call("SOME.PLACE.QuoteRequest.CheckboxCollection");