【问题标题】:Have a HTML page play Flash movie only once (not when revisited...)让 HTML 页面只播放一次 Flash 电影(不是在重新访问时...)
【发布时间】:2009-07-10 09:11:02
【问题描述】:

如何让 HTML 页面只播放一次 Flash 动画,即当一个人返回该页面时,Flash 不会从头开始再次播放,而只会显示动画的最后一帧(甚至是最后一帧的简单 .jpg 图像)?有可能吗?

谢谢, L.

【问题讨论】:

    标签: html flash animation load


    【解决方案1】:

    您可以在用户第一次访问时保存一个 cookie,以表明该用户之前访问过。 (http://plugins.jquery.com/project/Cookie)

    然后,当他们返回时,将该值传递给 flash(使用 flashvars),以便它只知道播放最后一帧。 (http://bowievanling.com/blog/using-flashvars-with-swfobject-20-and-as3/)

    使用swfObject 嵌入您的闪存:

    <script type="text/javascript">
    
    var flashvars = {
      iscookie: "true"
    };
    var params = {
      menu: "false"
    };
    var attributes = { };
    
    swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0","expressInstall.swf", flashvars, params, attributes);
    
    </script>
    

    如果 flashvar iscookie = true,则在 AS3 中加载 frameNumber:

    for (var fv in root.loaderInfo.parameters) {
       if(fv == 'iscookie'){
          if(root.loaderInfo.parameters[fv] == 'true'){
             gotoAndStop(frameNumber);
          }
       }
    }
    

    乔什

    【讨论】:

    • 谢谢乔希,你让我走上了正轨。当用户重新访问时,我仍然需要弄清楚如何告诉 Flash 转到最后一帧。有什么想法吗?
    • 你使用的是什么版本的actionscript?
    【解决方案2】:

    除了普通的 cookie,您还可以使用 Flash SharedObject。 它与普通的 cookie 非常相似,但您可以通过 ActionScript 访问它们,因此如果您自己创作 Flash 电影可能会更容易。 您只需保存一个简单的布尔值,然后 Flash 电影在下次打开时就可以看到它,并且知道只显示结束帧。

    您可以在此处阅读有关它们的信息: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/SharedObject.html

    【讨论】:

    • 共享对象是否足够可靠? “有时SWF文件可能不允许写入本地共享对象,有时本地共享对象中存储的数据可能会在您不知情的情况下被删除。”
    • cookie 也是一样。 Flash 中的默认设置允许共享对象,因此在大多数情况下应该不是问题。如果用户不允许共享对象,您可以检查错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    相关资源
    最近更新 更多