我有一个舞台大小为500x100的AS3 flash player 9 swf,在舞台上我有一些在舞台边框上延伸的物体,例如在490,90处有一个50像素直径的圆圈。
当我在HTML中嵌入swf时,当前正在发生的事情是圆圈正在被裁剪,我希望它仍然是完全可见的,即使它在舞台区域之外。这对于这个特定应用程序的行为至关重要,因为我需要鼠标才能访问flash影片下面的html元素。如果我只是让舞台更大,圆圈是可见的,但鼠标事件被透明的闪光舞台区域捕获。
如果我在浏览器中查看它自己的swf,例如:localhost / test.swf,则圆圈是完整的。我记得在8年前闪光灯中存在完全相反的问题,当时我不希望这些舞台上的物体可见但是它们是,所以我很确定它必须是可能的但是我无法获得正确的参数组合使嵌入工作正常。
我使用swfobject 2进行嵌入,但我尝试了其他方法并得到了相同的结果。
任何想法或建议都将受到高度赞赏:)
答案 0 :(得分:1)
您的问题不是Flash的舞台区域,而是嵌入Flash的浏览器容器的大小。没有画画就很难解释,但我会拍摄一下:
创建SWF时,可以在创作工具中选择尺寸。将此大小称为“舞台大小”。稍后,当您在浏览器中嵌入SWF时,您在HTML中定义一个大小 - 将其称为“容器大小”。通常两种尺寸相同,但不一定相同。
这里重要的是,当您在网络浏览器中查看SWF时,舞台大小在很大程度上无关紧要(*请参见下面的注释) - 无论是在舞台大小的内部还是外部,Flash都会渲染所有内容。容器大小决定了浏览器中SWF可视区域的范围。这与在HTML中定义<div>
完全相同 - 当您将SWF嵌入特定大小时,您告诉Web浏览器仅将那么多区域分配给Flash,而不是允许Flash在其外部渲染任何内容区域。
现在考虑到所有这些,解决问题的方法很简单 - 只需将Flash嵌入到更大的容器中即可。如果这解决了你的问题,那很好。但是,我猜你问的原因是你希望你的SWF的图形出现扩展到它的容器之外。如果是这种情况,唯一的方法是将具有透明背景的Flash嵌入到一个更大的容器中,该容器绝对使用CSS来覆盖其余的HTML内容。这是一个高级主题,但搜索有关"wmode=transparent"
的教程,它们应该可以帮助您入门。
注意:(在这个答案中我假设你嵌入scaleMode
设置为"noScale"
- 如果你不是,你可能应该除非你明白为什么不。)
答案 1 :(得分:0)
上面的答案很好,但您可以使用的另一个功能(在“打开”containerSize之后)是salign属性。此属性允许您调整此容器中swf的位置。
http://help.globalscape.com/help/cutehtmlpro5/Flash_Support_Parameters.htm