【问题标题】:Action Script 3 delay after i click in button link单击按钮链接后,动作脚本 3 延迟
【发布时间】:2013-10-22 22:27:15
【问题描述】:

我有一个问题。我用 jQuery 连接我的 flash 按钮,fadeIn /fade out 连接工作得很好。

但是当我添加这段代码时我遇到了问题:

navigateToURL(new URLRequest("contact.html"), "_self");

为此:

function onClick(event:MouseEvent):void {
    ExternalInterface.call("myfadeout");
}
navigateToURL(new URLRequest("contact.html"), "_self");

如果我单击不起作用,则会淡出,因为 navigateToURL 不接受来自 jQuery 的 .delay mettod。这个方法需要其他的.delay效果

如果我单击按钮,我只需要 3 秒暂停,并且在 3 秒后,当 jQuery 淡出页面和 navigateToURL 开始链接到 contact.html

请帮助我。我是平面设计师,我不太擅长动作脚本。 ;)

【问题讨论】:

    标签: jquery actionscript-3 flash button delay


    【解决方案1】:
    import flash.utils.setTimeout;
    
    function ContactBtnClick(event:MouseEvent):void {
        ExternalInterface.call("myfadeout");
        setTimeout(function() {
            navigateToURL(new URLRequest("contact.html"), "_self"); 
        }, 3000);
    }
    
    function AboutBtnClick(event:MouseEvent):void {
        ExternalInterface.call("myfadeout");
        setTimeout(function() {
            navigateToURL(new URLRequest("about.html"), "_self"); 
        }, 3000);
    }   
    
    function AnotherBtnClick(event:MouseEvent):void {
        ExternalInterface.call("myfadeout");
        setTimeout(function() {
            navigateToURL(new URLRequest("another.html"), "_self"); 
        }, 3000);
    }
    

    【讨论】:

    • 这是一个非常好的主意,但我的页面有时只会淡出并停止加载contact.html 和其他链接。当然,我将我的函数名称从 AboutBtnClick 更改为 onClick1、onClick2 等......你知道如何解决这个问题吗?谢谢!
    • 好吧,你也是个天才。 :) 我发现淡出“body”中的错误 你知道...如果 jQuery 有淡出(3000)并且 flash 有 setTimeout(3000) - 那么没有 flash 并且 flash 无法链接到 contact.html例子。但是我将 setTimeout 从 (3000) 更改为 (2990) 并且它有效并且看起来很性感。 ;) 非常感谢!你真酷! :)
    • 现在我很高兴,因为您找到了解决问题的方法,感谢您接受我的回答 :)
    • @ArletaKoźmińska 我只是想知道,通过 ExternalInterface 将所需的 url 传递给 jQuery 并在淡出后处理那里的导航不是更容易吗?这将使您更容易调试并且不会中继两个计时函数(Flash + jQuery),如下所示: // ExternalInterface.call("myfadeout", "contact.html");
    • @Amer,我认为这对她来说太先进了...... :)
    【解决方案2】:

    使用setTimeout

    function onClick(event:MouseEvent):void {
        ExternalInterface.call("myfadeout");
        setTimeout(navigate, 3000);
    }
    
    function navigate(){
        navigateToURL(new URLRequest("contact.html"), "_self"); 
    }
    

    您必须导入才能使用它

    import flash.utils.setTimeout;
    

    【讨论】:

    • 码头——你是个天才。 :) 它在一个按钮中工作。但我只有一个问题如果我有 3 个按钮和 3 个其他链接 - 我如何使用更多功能 navigate(){?如果我在其他按钮中复制,我遇到了这个问题 1021:重复的函数定义。请问你能帮帮我吗?以后我会帮你做平面设计。 :)
    • 谢谢,您可以为每个函数使用不同的名称,例如navigateToContactnavigateToHome 等。如果您认为答案有用,请点击复选标记图标接受它;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多