Forked from: ahn's Ameba Pigg Sample diff:1 forked from: Ameba Pigg Sample Riki.Kawanam.. forked:0favorite:0lines:114license : All rights reserved modified : 2011-06-11 23:25:16 Embed Tweet // forked from ahn's Ameba Pigg Sample package { import flash.display.Sprite; import flash.display.Bitmap; import flash.events.Event; [SWF(width="465", height="465", frameRate="30", backgroundColor="#FFFFFF")] public class Index extends Sprite { private var multiLoader:MultiLoader;// ロード private var assigneContainer:AssigneContainer;// 着せ替えコンテナ private var itemBtn:ItemBtn;// アイテムボタン //画像のパス private var itemURLArr:Array = ["http://assets.wonderfl.net/images/related_images/d/df/df7d/df7d681ee045b0a880a4e29b17dd89b49e8f29cc",// 服のボタンのURL "http://assets.wonderfl.net/images/related_images/8/8d/8db1/8db120b48c6cd0df2826666051dab32687bb0983",// キャラクターのURL "http://assets.wonderfl.net/images/related_images/8/87/87b1/87b1368ba52920859e04095126cf9194849f229f",// 服のベースのURL "http://assets.wonderfl.net/images/related_images/f/f4/f4b5/f4b57a28591168f37251205710e77fad2c4db7a6"];// 服のURL // ▼提供素材URL // http://www.cyberagent.co.jp/img/media/kayac/piggitem.zip public function Index() { // 複数のイメージのロード開始 multiLoader = new MultiLoader(itemURLArr); multiLoader.addEventListener(Event.COMPLETE, loadComplete); } // ロード完了 private function loadComplete(event:Event):void { multiLoader.removeEventListener(Event.COMPLETE, loadComplete); // 配列の画像データを配分 var itemBtnBmp:Bitmap = multiLoader.data.shift(); var assigneBmpArr:Array = multiLoader.data; // アイテムボタンの設定と画像配置 itemBtn = new ItemBtn(itemBtnBmp); addChild(itemBtn); itemBtn.x = (stage.stageWidth-itemBtn.width)/2 itemBtn.y = stage.stageHeight-itemBtn.height-85; // 着せ替えコンテナの設定と画像配置 assigneContainer = new AssigneContainer(itemBtn, assigneBmpArr); addChild(assigneContainer); assigneContainer.x = (stage.stageWidth-assigneContainer.width)/2 assigneContainer.y = 140; } } } import flash.display.Sprite; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Graphics; import flash.display.Shape; import flash.display.Loader; import flash.events.Event; import flash.events.MouseEvent; import flash.net.URLRequest; import flash.system.LoaderContext; // ロード class MultiLoader extends Loader { private var _count:uint = 0; private var _urlArr:Array = []; private var _data:Array = []; public function MultiLoader(urlArr:Array):void { _urlArr = urlArr; // ロード開始 dataLoad(_urlArr[_count]); } public function dataLoad(url:String):void { var context:LoaderContext = new LoaderContext(true); var _loader:Loader = new Loader(); _loader.load(new URLRequest(url), context); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); } private function loadComplete(event:Event):void { event.currentTarget.removeEventListener(Event.COMPLETE, loadComplete); _data.push(event.currentTarget.content); // ロードしたデータをカウント _count++; if(_urlArr.length > _count){ dataLoad(_urlArr[_count]);// 次のデータを読み込み }else if(_urlArr.length <= _count){ dispatchEvent(new Event(Event.COMPLETE));// ロード完了 } } public function get data():Array{ return _data; } } // 着せ替えコンテナ class AssigneContainer extends Sprite { private var _itemBmp:Bitmap; public function AssigneContainer(call:Object, bmpArr:Array) { // キャラクターを配置 addChild(bmpArr[0]); // 下着を配置 addChild(bmpArr[1]); bmpArr[1].x = 38; bmpArr[1].y = 90; // アイテムの設定 _itemBmp = bmpArr[2]; addChild(_itemBmp); _itemBmp.x = 30; _itemBmp.y = 89; _itemBmp.visible = false; // ボタンのイベントリスナー call.addEventListener("CLICK", assigne); } // アイテムのイメージを表示、非表示 private function assigne(event:Event):void { if(_itemBmp.visible){ _itemBmp.visible = false; }else{ _itemBmp.visible = true; } } } // ボタン class ItemBtn extends Sprite { public function ItemBtn(bmp:Bitmap) { addChild(bmp); // ボタンのイベント設定 buttonMode = true; addEventListener(MouseEvent.MOUSE_UP, clickAction) } private function clickAction(event:MouseEvent):void { // イベント発信 dispatchEvent(new Event("CLICK")); } } Code Fullscreen Preview Fullscreen