【问题标题】:SWF file seek informationSWF 文件查找信息
【发布时间】:2011-07-19 09:34:50
【问题描述】:

是否可以获取和设置 swf 文件的查找位置(在 ActionScript 2/3 或 Flash Player 的 ActiveX API 中)?

我一开始尝试使用帧数(以确定正在播放电影的哪一部分),但有时整个动画有 2 帧,但没有帮助。

有什么想法吗? 谢谢。

【问题讨论】:

    标签: actionscript-3 activex flash seek


    【解决方案1】:

    如果您加载的 SWF 包含舞台时间轴上的所有动画(我的意思是顶级),那么您正在寻求的进度是:

    var progress:Number = swf.currentFrame / swf.totalFrames;
    

    如果你想设置搜索:

    swf.gotoAndPlay ( progress * swf.totalFrames )
    

    也可能是所有的动画不在顶层,而是在movieClip中,你知道哪个地址,我的意思是stage.getChildByName('something).getChildByName('something)...

    但是,如果您有一个 swf,其中有多个影片剪辑,并且它们是独立播放的,那么我无能为力....

    【讨论】:

    • 还有第三种选择吗?我的意思是只有 1 帧且没有影片剪辑的 Flash 动画?也许是脚本或某事?
    • 也可以这样,当所有动画都是基于程序的,你就可以跟踪它。
    • 我不确定你的真实观点,但如果这些是你的 swf 并且你创建它们,你可以看看这个:greensock.com/timelinelite
    • 不幸的是,这些文件可以是任何 swf 文件,很可能不是由我创建的。因此,如果所有动画都被编程在一帧中,那么我们就不能向后和/或向前(好吧也许向后),对吧?我们将不得不等到代码执行后才能看到结果
    • 您是否有任何仅包含 1 帧且动画完全由脚本完成的示例 swf 文件?我在网上找了一些样品,但到目前为止没有结果......
    【解决方案2】:

    据我所知,如果没有在 SWF 中编码某些内容,则并非如此。因为 Flash 中的动画可以嵌入到 MovieClips 中,或者完全在单个帧中编写脚本,所以没有简单的方法来检测总播放时间或动画的进度。任何 get/seek 功能,甚至是进度广播,都必须在 SWF 中编写脚本并通过ExternalInterface 访问。

    【讨论】:

      【解决方案3】:

      请更具体地说明您的问题。如果您的 swf 文件只有 2 帧,那么您要寻找的是什么?例如,您的 swf 是否加载了视频,而这正是您要寻找的内容? (在这种情况下,您可以获得视频对象的播放位置和状态的属性)。

      没有更多信息,很难给出明确的答案。

      【讨论】:

      • 我的 swf 文件可以只包含 1 帧,也可以包含 100 帧,我应该找到适合两者的解决方案。问题是,假设我有一个 1 帧的 swf。我想快进动画并显示内容,就好像它正在播放 2 小时一样。这可能吗?
      • 如果您的 swf 只有 1 帧但它包含动画,那么根据定义它包含子影片剪辑。您可以在根时间轴上使用帧导航 (goToFrame),然后循环显示列表以发现所有可用的子影片剪辑,然后在这些上使用 goToFrame。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 2012-10-19
      • 2013-05-09
      • 2023-03-31
      相关资源
      最近更新 更多