hjkhghopjkertteerterterterertertrtoirh
bnmbertsurhetertertertertertertertpdf'tdfg
/
srv
/
www
/
virtual
/
dev1.wccweb.jp.dac4.biz
/
web
/
htdocs
/
wphh
/
2009
/
shosai
/
Upload FileeE
HOME
/*======================================================================*//** * * 3PCPG * * @author Copyright (c) 2008 muraken[undefined™(http://www.undefined.nu)] * @version 1.0.0 * *//*=======================================================================*/ package { import flash.display.Stage; import caurina.transitions.Tweener; import flash.display.Sprite; import flash.display.StageAlign; import flash.events.Event; import flash.events.ProgressEvent; import flash.net.URLLoader; import flash.net.URLRequest; import events.ViewEvent; import events.FooterEvent; import display.*; import util.GroupLoader; public class Main extends Sprite { public static var _stage:Stage; public static var view:View; public static var footer:Footer; private var loader:Loading = new Loading(); public function Main():void { //staticな変数_stageにstageを格納します。 _stage = stage; //stageの初期設定 stage.frameRate = 60; stage.quality = "MEDIUM"; stage.scaleMode = "noScale"; stage.align = StageAlign.TOP_LEFT; //footerを生成、Flashのライブラリ内に作ってあります。 footer = new Footer(); //footerを表示リストに追加します。 addChild(footer); init(); } private function init():void { //XML読み込み var myLoader:URLLoader = new URLLoader(); myLoader.addEventListener(Event.COMPLETE, completeXml); myLoader.load(new URLRequest("data.xml")); } private function completeXml(e:Event):void { //XMLをパースします。 var _xml:XML = new XML(e.target.data); //タグ情報を入れるObjectです。 var _obj:Object = new Object(); var tmpArray:Array; var srcArray:Array = new Array(); //タグ情報に全てのデータを含む'ALL'を追加します。 _obj['ALL'] = new Array(); //GroupLoaderというまとめて画像をロードするクラスを生成します。クラスはutilパッケージ内にあります。 var gl:GroupLoader= new GroupLoader(); for (var i:int = 0; i < _xml.photo.length(); i++) { //GloupLoaderにロードするサムネイル画像のURLを追加します。 gl.addLoad(_xml.photo[i].thumbnail); srcArray.push(_xml.photo[i].src); _obj['ALL'].push(i); tmpArray = _xml.photo[i].tags.split(","); for each(var str:String in tmpArray) { if (!_obj[str]) _obj[str] = new Array(); _obj[str].push(i); } } //今回、タグ情報はFooterの中で使いますので、Footerにデータを渡します。 footer.setTags(_obj); //Loadingを生成、シンボルはFlashのライブラリ内に作ってあります。 addChild(loader); //Loadingが完了した時に発生するイベントに関数endLoadingを登録します。 loader.addEventListener(Loading.ON_LOADED,endLoading); loader.start(); //大きな画像のURLの入った配列をviewに渡します。 view = new View(srcArray); //GroupLoaderのロード中に今画像がどれだけ読まれたかを通知されるイベントに登録 gl.addEventListener(ProgressEvent.PROGRESS, loadingPhoto); //GroupLoaderの画像が全部ロードされた後に通知されるイベントに登録 gl.addEventListener(Event.INIT, loadedPhoto); gl.start(); } private function loadingPhoto(e:ProgressEvent):void { //LoadingにGroupLoaderの現在のローディング状況を伝えます。 loader.setLoaded(Math.floor((e.bytesLoaded / e.bytesTotal) * 100)); } private function loadedPhoto(e:Event):void { var gl:GroupLoader = e.target as GroupLoader; gl.removeEventListener(ProgressEvent.PROGRESS, loadingPhoto); gl.removeEventListener(Event.INIT, loadedPhoto); //ロードされたBitmapDataの入った配列をfooterに渡します。 footer.setThumbNail(gl.data); //Loadingに全てロードされたことを伝えます。 loader.setLoaded(100); } private function endLoading(e:Event):void { loader.removeEventListener(Loading.ON_LOADED, endLoading); removeChild(loader); //loaderはもう不要なのでnullを代入して消去します。 loader = null; //スタンバイができたのでfooterを画面内に表示します。 footer.show(); view.setListener(); footer.setListener(); //viewを表示リストに追加します。 addChildAt(view, 0); //viewの表示を開始します。 view.setSlide(true); } } }