如何使用swffit(http://swffit.millermedeiros.com/)?我的意思是在我的项目中我动态扩展了flash应用程序,所以一旦扩展部分丰富了底部,我就会看到标准的flash滚动条。不是浏览器滚动条...
以下是我定义应用程序的方式:
public function addPanel(evt:Event):void
{
var panel:Panel = new Panel();
panel.name = "new";
panel.title = "new";
panel.height = 30;
panel.width = 100;
this.addChild(panel);
SWFFit.fit('my_flash', 800, 600);
}
public function main(event:Event):void{
SWFFit.fit('my_flash', 800, 600);
}
]]>
</mx:Script>
<mx:Button label="Add" click="addPanel(event)"/>
html文件(与文档中描述的相同):
<html>
<head>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="swffit.js"></script>
<script type="text/javascript">
swfobject.registerObject("my_flash", "8.0.0");
swffit.fit("my_flash",800,600);
</script>
</head>
<body>
<object id="my_flash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%">
<param name="movie" value="Sample.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="Sample.swf" width="100%" height="100%">
<!--<![endif]-->
<div>
<a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" title="Get Adobe Flash player" /></a><br />
You need <a href="http://www.adobe.com/go/getflashplayer">Flash Player 8</a> and allow javascript to see the content of this site..
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</body>
</html>
很高兴听到任何反馈,
添加了答案1中描述的修补程序,但遇到了有趣的问题:例如浏览器滚动条仅在浏览器窗口调整大小时显示,而不是在单击添加按钮时显示...
http://img.skitch.com/20100210-qx9trerh8rq5athhnuwtidetr6.png
多次点击添加后,我看到flash默认滚动条...
答案 0 :(得分:1)
查看此SWFFit Tutorial。
并测试是否将width="300" height="300"
更改为width="100%" height="100%"
做了什么。如果您拥有swffit.fit("my_flash", 800, 600);
中的显式大小,则swffit会设置最小大小,因此如果您的浏览器视口位于其下方,则会显示滚动条,如果它位于它们上方,则swf会调整大小100%的宽度和高度。 / p>
然后,要从Actionscript动态调整swf大小,请使用com.millermedeiros.swffit.SWFFit
类。您可以从ActionScript调用SWFFit.fit(...)
和其他一些方法,它会执行所有javascript来调整它的大小。
在swffit source中有一些示例.fla,看看他们是如何做到的。
更新:以下是一些演示如何从ActionScript中调整swf大小的代码。
示例应用
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Script>
import com.millermedeiros.swffit.*;
public static const FLASH_ID:String = "my_flash";
public function updateSize():void
{
var width:Number = widthSlider.value;
var height:Number = heightSlider.value;
trace("width: ", width, " height: ", height);
SWFFit.fit(FLASH_ID, width, height);
}
</mx:Script>
<mx:Panel backgroundColor="0xaaaaaa" width="80%" height="80%"
horizontalCenter="0" verticalCenter="0"/>
<mx:VBox width="100%" height="100%">
<mx:Label text="Width"/>
<mx:HSlider id="widthSlider" liveDragging="true" change="updateSize()"
minimum="300" maximum="2000"/>
<mx:Label text="Height"/>
<mx:HSlider id="heightSlider" liveDragging="true" change="updateSize()"
minimum="300" maximum="2000"/>
</mx:VBox>
</mx:Application>
示例HTML模板
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="swffit.js"></script>
<script type="text/javascript">
swfobject.registerObject("my_flash", "10.0.0", "expressInstall.swf");
swffit.fit("my_flash", 800, 600);
</script>
</head>
<body>
<object id="my_flash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%">
<param name="movie" value="Sample.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="Sample.swf" width="100%" height="100%">
<!--<![endif]-->
<div>
<a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" title="Get Adobe Flash player" /></a><br />
You need <a href="http://www.adobe.com/go/getflashplayer">Flash Player 10</a> and allow javascript to see the content of this site..
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</body>
</html>
最佳, 兰斯