【问题标题】:AS3 navigateToURL only works when testing in Flash CCAS3 navigateToURL 仅在 Flash CC 中测试时有效
【发布时间】:2014-03-25 10:58:29
【问题描述】:

我已尝试搜索 stackoverflow 以找到此问题的答案,但到目前为止还没有找到任何答案。

我有一个 swf 文件,其中包含舞台上的几个电影剪辑。当我设法创建一个事件时,当用户悬停时,影片剪辑会换出新的影片剪辑。我遇到的问题是,当您单击该新影片剪辑时,它应该在浏览器窗口中打开一个 URL。当我在 Flash CC 中测试电影时会发生这种情况,但当我在浏览器中测试时没有任何反应。

对此的任何帮助将不胜感激。如果网站上其他地方有人问过这个问题,我深表歉意,但正如我所说,我之前进行了搜索,但没有找到任何东西。

import flash.events.MouseEvent;

addEventListener(MouseEvent.MOUSE_OUT, gobackAnimation);

function gobackAnimation(event:MouseEvent):void
{
    MovieClip(parent).gotoAndStop(1)
}

addEventListener(MouseEvent.CLICK, openURL);

function openURL(event:MouseEvent):void
{
    ExternalInterface.call("open", "URL I'm trying to open");
    MovieClip(parent).gotoAndStop(1)
}

【问题讨论】:

  • 您必须先共享有问题的代码,然后才能有人帮助您。有关如何在 SO 上提出更好问题的提示,请访问 this 链接。干杯。
  • 我很抱歉。有我用的代码。
  • 我已经提供了答案,但是没有看到您在调用 ExternalInterface.call("open", "URL I'm trying to open"); 时指定的代码,很难看出您打开 URL 的方式是否存在问题。

标签: actionscript-3 flash navigatetourl


【解决方案1】:

要打开 URL,您必须使用 navigateToURL 函数,如文档中的 here

您似乎正在使用以下代码来触发打开 URL:

function openURL(event:MouseEvent):void
{
    ExternalInterface.call("open", "URL I'm trying to open");
    MovieClip(parent).gotoAndStop(1)
}

但是,我不知道这个ExternalInterface 是在哪里或是什么,以及call 函数是如何构建的。

如果你想打开一个 URL,你应该按照以下几行做一些事情:

function openURL(event:MouseEvent):void
{
    var myURL:String = "http://your.url.goes/here";  // set your url here
    var window:String = "_blank"; // you can set this to be whatever you need based on how you want the window opened
    var request:URLRequest = new URLRequest(myURL);
    request.data = variables;
    try {            
        navigateToURL(request,window);
    }
    catch (e:Error) {
        // handle error here
    }
    MovieClip(parent).gotoAndStop(1)
}

【讨论】:

  • 感谢您的帮助。我实际上是从 AS2 出来的 AS3 的新手(我已经有一段时间没有进行 Flash 编程了,但是一个朋友让我为他们在 Flash 中做一些东西)所以我不知道如何让它工作。起初我尝试使用 navigateToURL 方法,但我没有将窗口定义为变量。我会试试看它是否有效。至于ExternalInterface,你看到的那段代码就是我用的(减去url),我没有与该函数相关的任何其他代码。
  • @user3344673 好吧,让您知道代码行,ExternalInterface.call("open", "URL I'm trying to open"); 不会打开 URL。您必须按照我在发布的答案中记录的方式进行设置。这并不是说您不能将其集中到它自己的可重用功能中,但至少您有一个工作示例。 window 变量是navigateToURL 函数的可选参数,但我觉得值得一提,因为它将决定您的 URL 将在哪个窗口中打开,这很重要。如果您对我的代码有任何疑问,请告诉我。
猜你喜欢
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
相关资源
最近更新 更多