我试图将一个物体保持在屏幕的某个位置,而不是调整它(使用舞台)
function Resize(e:Event = null):void
{
if ((stage.stageWidth)/(stage.stageHeight) > fundos.width/fundos.height)
{
fundos.width = stage.stageWidth;
fundos.scaleY = fundos.scaleX;
}
else
{
fundos.height = stage.stageHeight;
fundos.scaleX = fundos.scaleY;
}
fundos.x = (stage.stageWidth - fundos.width) /2;
fundos.y = (stage.stageHeight - fundos.height) /2;
setas.x = (stage.stageWidth - setas.width + 505) /2;
setas.y = (stage.stageHeight - setas.height);
}
我的舞台正在调整所有ok(保持宽高比)并且我试图添加一个nav img,它将保持与我调整浏览器屏幕大小相同的位置
我该怎么做?
答案 0 :(得分:2)
使用
收听舞台活动Event.RESIZEstage.addEventListener(flash.events.Event.RESIZE, resizeHandler);
当用户以任何方式调整舞台大小时调度它(放大浏览器,调整大小
在事件处理程序中,运行您提供给我们的代码段。
另外,不要忘记使用
stage.scaleMode = flash.display.StageScaleMode.NO_SCALE;
或者内容将调整大小。
享受。
答案 1 :(得分:1)
这是一个例子。 Blob精灵是保持初始位置(50,50)的对象
package {
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.display.Sprite;
[SWF(backgroundColor="#00FF00", frameRate="31")]
public class Application extends Sprite {
private var blob:Sprite;
public function Application() {
if(stage) {
init();
} else {
addEventListener(Event.ADDED_TO_STAGE, init);
}
}
private function init() : void {
removeEventListener(Event.ADDED_TO_STAGE, init);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
addEventListener(Event.RESIZE, resize);
blob = new Sprite();
blob.graphics.beginFill(0x000000);
blob.graphics.drawRect(50, 50, 200, 100);
blob.graphics.endFill();
addChild(blob);
}
private function resize(event : Event) : void {
// Do nothing on blob's Object
}
}
}
舞台调整好(比例),但即使你设置(在你的嵌入中)swf宽度和高度为100%
,blob也会保持位置