【AS3】タイル状に画像を並べる
忘れてたのでメモ
画面のサイズに応じて画像を敷き詰めるやり方。ブラウザのリサイズも対応しています。
下記の部分がステージの横幅、縦幅に応じて画像のおける数を算出しています。
_boxRow = int(stage.stageHeight / (BOX_H + PADDING)) + 1; _boxCol = int(stage.stageWidth / (BOX_W + PADDING)) + 1;
ソース全文
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class Main extends MovieClip{
private var BOX_W:int = 140;
private var BOX_H:int = 140;
private var PADDING:int = 5;
private var _boxRow:int;
private var _boxCol:int;
private var _boxContainer:Sprite;
private var _box:Box;
public function Main() {
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
stage.addEventListener(Event.RESIZE, resizeHnadler);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(MouseEvent.CLICK, clickHandler);
stage.align = "TL"
trace("init")
_boxContainer = new Sprite();
_boxContainer.y = stage.stageHeight;
addChild(_boxContainer);
_boxContainer.y = 0;
_boxRow = int(stage.stageHeight / (BOX_H + PADDING)) + 1;
_boxCol = int(stage.stageWidth / (BOX_W + PADDING)) + 1;
var i:int;
var j:int;
for (i = 0; i < _boxRow; i++) {
for (j = 0; j < _boxCol; j++) {
_box = new Box(i);
_box.x = ((BOX_W + PADDING)* j);
_box.y =0+ ((BOX_H + PADDING) * i);
_box.addEventListener(Event.ENTER_FRAME, addHandler);
_boxContainer.addChild(_box);
}
}
}
private function resizeHnadler(e:Event):void {
removeChild(_boxContainer);
init();
}
}
}
トラックバック(0)
このブログ記事を参照しているブログ一覧: 【AS3】タイル状に画像を並べる
このブログ記事に対するトラックバックURL: http://alwaysfinetuning.com/mt/mt-tb.cgi/100
