私はステージ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 を作成して再度追加するだけで十分ですか?