0

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

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

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

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

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

4

2 回答 2

1

您的问题不是 Flash 的舞台区域,而是 Flash 嵌入的浏览器容器的大小。不画图很难解释,但我先试一试:

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

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

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


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

于 2009-09-14T07:09:56.077 回答
0

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

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

于 2009-10-01T16:59:45.443 回答