FLASH as3.0 自动适应屏幕的代码
2个回答
展开全部
StageScaleMode并不能完全解决问题,
这里还要要用到stage的一个事件(Event.RESIZE)
我做了一个简单的例子:
截图如下,一张是打开的样子,一张是最大化效果:
打开flash,创建一个mc,里面是一张图片,大小和舞台一样,然后加入一个由文本制作的简单按钮,mc取名img,按钮取名btn
打开动作面板,输入如下代码:
import flash.events.Event;
import flash.display.StageScaleMode;
stage.scaleMode = StageScaleMode.EXACT_FIT;
stage.addEventListener(Event.RESIZE, resizeHandler);
btn.x = img.x + img.width - btn.width - 25 * img.scaleX;
btn.y = img.y + img.height - btn.height - 25 * img.scaleY;
function resizeHandler(evt:Event):void
{
img.width = stage.stageWidth;
img.height = stage.stageHeight;
img.x = (img.width - 550) / -2;
img.y = (img.height - 400) / -2;
btn.scaleX = img.scaleX;
btn.scaleY = img.scaleY;
btn.x = img.x + img.width - btn.width - 25 * img.scaleX;
btn.y = img.y + img.height - btn.height - 25 * img.scaleY;
}
其实当内容多了之后要做很多计算,原理一致,但是麻烦些
上传cc版本fla源文件,和一个swf
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询