package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import net.alumican.as3.ui.justputplay.carousels.IJPPCarouselItem; import net.alumican.as3.ui.justputplay.carousels.JPPCarousel; /** * Sample02 * * @author alumican.net */ public class Sample02 extends Sprite { /** * カルーセルエンジン */ private var _carousel:JPPCarousel; /** * コンストラクタ */ public function Sample02():void { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; //アイテム配置用コンテナ var container:Sprite = addChild( new Sprite() ) as Sprite; //エンジンの生成 _carousel = new JPPCarousel(); _carousel.setup(["circle", "triangle", "rectangle"], container); _carousel.requireItem = _requireItem; _carousel.destroyItem = _destroyItem; _carousel.itemMargin = 30; //イベントハンドラの登録 addEventListener(Event.ENTER_FRAME, _update); stage.addEventListener(Event.RESIZE, _resize); _resize(); } /** * 新規アイテムが必要となった際に呼び出される関数 * @param itemID:* * @return IJPPCarouselItem */ private function _requireItem(itemID:*):IJPPCarouselItem { return new MyItem(itemID); } /** * 不要アイテムを削除する際に呼び出される関数 * @param item:IJPPCarouselItem */ private function _destroyItem(item:IJPPCarouselItem):void { } /** * 毎フレーム */ private function _update(e:Event):void { _carousel.scrollPosition += 40 * (mouseX / stage.stageWidth - 0.5); } /** * リサイズ */ private function _resize(e:Event = null):void { _carousel.container.y = stage.stageHeight * 0.5; _carousel.fieldSize = stage.stageWidth; } } }