0

祝大家有美好的一天。我今天在这里寻求有关 Flash CS4 和 ActionScript 3.0 的帮助。故事开始于有一天,我的老板让我做一个关于他们即将进行的新开发软件用户培训的快速演示。我对此充满热情和兴奋,因为我已经很长时间没有使用 Flash(请注意,我没有任何使用 ActionScript 3.0 的经验)。起初,一切都有些粗糙,因为我需要回忆如何正确使用帧来创建成功的动画。当我即将完成项目时,我的老板再次走近我,问我是否可以在前面插入一个菜单页面,这样用户就不必再重播整个事情,只是为了在那个部分寻找一些东西电影。所以是的,起初我有点犹豫接受。我说它可以与 Powerpoint 一起使用。但她是个十足的推动者,我不得不说是的。现在我遇到了关于如何让 Flash 按钮加载 swf 电影的问题。我试过在网上搜索教程,但大多数时候“getUrl”和其他东西都被认为是过时的。请帮忙?

4

1 回答 1

1

此答案基于我对您的问题的解释,即:“我可以创建一个充当菜单的 SWF,并根据用户在菜单中单击的内容加载不同的 SWF 文件吗?”。

答案当然是肯定的,方法如下:

您需要了解/查看的几件事:

  1. Loader 和 URLRequest 类。
  2. 按钮的事件监听器。

这是一个加载 SWF 的函数:

var loadedSWF:Loader = null;

/**
 * Loads an SWF and adds it to container once complete
 * @param file The URL to the SWF to load
 * @param container The container to add the SWF to
 */
function loadSWF(file:String, container:MovieClip=null):void
{
    if(container == null) container = MovieClip(root);

    // removes the previously loaded SWF
    if(loadedSWF != null)
    {
        if(loadedSWF.parent) loadedSWF.parent.removeChild(loadedSWF);
    }

    var req:URLRequest = new URLRequest(file);
    loadedSWF = new Loader();
    loadedSWF.load(req);

    addChild(loadedSWF);
}

以下是单击按钮时如何使用此功能:

mybutton.addEventListener(MouseEvent.CLICK, _click);
function _click(e:MouseEvent):void
{
    loadSWF("myfile1.swf");
}

根据评论中的问题:

您可以使用navigateToURL()而不是加载程序,并在不同的页面(基本上就像一个网站)上设置您的外部 SWF。如果您打算这样做,则将主索引页面保留为纯 HTML 并在新窗口中启动页面可能更有意义。如果您仍希望将主页设为 flash,则单击新窗口中的页面的方法如下:

button.addEventListener(MouseEvent.CLICK, _click);
function _click(e:MouseEvent):void
{
    var req:URLRequest = new URLRequest("somepage.html");
    navigateToURL(req, "_blank");
}
于 2011-05-17T01:36:15.857 回答