【问题标题】:how do I allow objects in a flash SWF that are partially off stage to be visible and not cropped如何让 Flash SWF 中部分离开舞台的对象可见且不被裁剪
【发布时间】:2009-09-13 21:19:43
【问题描述】:

我有一个舞台大小为 500x100 的 AS3 flash player 9 swf,在舞台上我有一些对象延伸到舞台边界上,例如 490,90 处的 50 像素直径圆。

当我在 HTML 中嵌入 swf 时,目前正在发生的事情是圆圈正在被裁剪,我希望它仍然完全可见,即使它在舞台区域之外。这对于这个特定应用程序的行为至关重要,因为我需要鼠标能够访问 Flash 影片下方的 html 元素。如果我只是让舞台变大,圆圈是可见的,但鼠标事件会被透明的 Flash 舞台区域捕获。

如果我在浏览器中查看它自己的 swf,例如:localhost/test.swf,则圆圈是完整的。我记得 8 年前在 flash 中遇到了完全相反的问题,当时我不希望这些舞台外对象可见但它们是可见的,所以我很确定这一定是可能的,但我无法获得正确的参数组合以便嵌入正常工作。

我正在使用 swfobject 2 进行嵌入,但我尝试了其他方法并得到了相同的结果。

任何想法或建议将不胜感激:)

【问题讨论】:

  • 如果它不在浏览器的舞台上,它就不会显示。您必须扩大舞台以使通常会在该尺寸下被切断的东西出现。我从来没有这样做过,但是您可以尝试使用具有透明背景的 swf 并将其绝对定位在页面上您需要的位置。这应该可以让您看到它背后呈现的 html,并且还可以通过您的 swf 与它进行交互。

标签: flash embed swfobject


【解决方案1】:

您的问题不是 Flash 的舞台区域,而是 Flash 嵌入的浏览器容器的大小。不画图很难解释,但我还是拍个照吧:

创建 SWF 时,您可以在创作工具中选择大小。将该尺寸称为“舞台尺寸”。稍后,当您在浏览器中嵌入 SWF 时,您会在 HTML 中定义一个大小 - 将其称为“容器大小”。通常这两个尺寸是相等的,但它们不必相等。

这里重要的是,当您在网络浏览器中查看 SWF 时,舞台大小在很大程度上是无关紧要的(* 请参见下面的注释) - Flash 将渲染所有内容,无论它是在舞台大小之内还是之外。容器大小决定了浏览器中 SWF 可视区域的范围。这与在 HTML 中定义 <div> 完全相同 - 当您以特定大小嵌入 SWF 时,您是在告诉 Web 浏览器只为 Flash 分配那么多区域,并且不允许 Flash 呈现该区域之外的任何内容。

现在考虑到所有这些,解决您的问题的方法很简单 - 只需将 Flash 嵌入到更大的容器中即可。如果这能解决你的问题,那很好。但是,我猜您问的原因是您希望 SWF 的图形 显示 延伸到其容器之外。如果是这种情况,唯一的方法是将具有透明背景的 Flash 嵌入到一个更大的容器中,该容器绝对用 CSS 定位以覆盖 HTML 内容的其余部分。这是一个高级主题,但请搜索有关 "wmode=transparent" 的教程,它们应该可以帮助您入门。


注意:(在整个答案中,我假设您正在嵌入 scaleMode 设置为 "noScale" - 如果不是,除非您明白为什么不这样做,否则您可能应该这样做。 )

【讨论】:

  • 我已经将 wmode 设置为透明,并将 scale 设置为 noscale。问题是stage,或者嵌入swf容器覆盖的区域对鼠标事件不透明,swf透明区域下方的div中的内容对鼠标没有响应
  • 我想要达到的目标就是这样。假设我有一个包含 html 内容的页面,我想在一个绝对定位的 div 中覆盖一个 swf,覆盖整个页面。然后,如果我为一个从 swf 边界反弹的球设置动画,它的墙壁看起来就好像一个球位于 html 顶部。如果我使用透明 wmode,这看起来没问题,但是 html 没有收到任何鼠标事件
  • 我认为鼠标事件不可能通过透明 Flash 传递到下面的 HTML。你能用 DHTML 实现类似的效果吗? (即,将球的图形放入绝对定位的 DIV 中,然后将 DIV 弹回。)
【解决方案2】:

上面的答案很好,但是您可以利用的另一个功能(在“打开”containerSize 之后)是 salign 属性。此属性允许您调整 swf 在此容器中的位置。

http://help.globalscape.com/help/cutehtmlpro5/Flash_Support_Parameters.htm

【讨论】:

    猜你喜欢
    • 2010-09-15
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多