我有一个 300 到 200 的舞台,我拥有的所有对象都是针对这个尺寸的。还有一个填充背景的图案功能。但是用户正在考虑将舞台大小调整为 1024 到 480(他从手机切换到平板电脑)。现在平板电脑屏幕中的对象比例是以前的 3 倍以上(在手机上看到时)如何我是否保存当前的新尺寸对象并将其用于创建新背景(1024x480)。我有这个代码
public static const GAME_ORG_WIDTH:uint = 300;
public static const GAME_ORG_HEIGHT:uint = 200;
private var myC:MyClip = new MyClip();
public function MainClass_road() {
addEventListener(Event.ADDED, init);
}
public function init(e:Event):void{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, setUpScreen);
}
public function setUpScreen(ev:Event):void{
stage.removeEventListener(Event.RESIZE, setUpScreen);
if(stage.fullScreenHeight > stage.fullScreenWidth){
gameStageWidth = stage.fullScreenWidth;
gameStageHeight = stage.fullScreenHeight;
}else {
gameStageWidth = stage.fullScreenHeight; // 480
gameStageHeight = stage.fullScreenWidth; //1024
}
rescaleRatio = gameStageWidth / GAME_ORG_WIDTH;
//rescale every object, ie:
myC.scaleX = myC.scaleY = rescaleRatio;
//start filling the Background with the pattern
tileBgF();
}
所以在tileBgF()之前我如何保存对象的新尺寸并使用它们(新值)用这个函数填充屏幕。因为现在我只使用旧的对象属性(大小),而不是更新的.
public function tileBgF(e:Event=null):void {
var bgClip:MovieClip = new myC();
var i:int = 0;
var j:int = 0;
while (bgClip.x < gameStageWidth - bgClip.width) {
bgClip = MyC;
while (bgClip.y < gameStageHeight - bgClip.height) {
bgClip = MyC;
tileLayer.addChild(bgClip);
bgClip.x = bgClip.width * i;
bgClip.y = bgClip.height * j;
j++;
}
j = 0;
i++;
}
addChildAt(tileLayer,0);
}
如果我决定将来再次使用背景(所以我在舞台上同时有 2 个背景)是否足以制作另一个 tileLayer 并再次添加它,或者我需要做更多的事情?