Posted By

daisuke103 on 02/11/08


Tagged

xml sample Fuse as2 CASA


Versions (?)

AS2 大阪てら子App.as


 / Published in: Other
 

  1. /* ここから */
  2.  
  3. import org.casaframework.load.data.xml.XmlLoad;
  4. import org.casaframework.util.MovieClipUtil;
  5. import org.casaframework.util.XmlUtil;
  6.  
  7. import com.mosesSupposes.fuse.PennerEasing;
  8. import com.mosesSupposes.fuse.Shortcuts;
  9. import com.mosesSupposes.fuse.ZigoEngine;
  10.  
  11. import net.saqoosha.teraco.blogparts.LogoAnimation;
  12. import net.saqoosha.teraco.blogparts.MemberDetail;
  13. import net.saqoosha.teraco.blogparts.MemberList;
  14.  
  15. /**
  16. * @author teraco
  17. */
  18. class net.saqoosha.teraco.blogparts.App extends MovieClip {
  19.  
  20. /**
  21. * エントリーポイント。こっからすべてが始まるよ。
  22. * この関数自体はflaの1フレームめから呼んでる。
  23. */
  24. static public function main(target:MovieClip):Void {
  25. target.__proto__ = App.prototype;
  26. Function(App).apply(target, null);
  27. }
  28.  
  29. // インスタンスプロパティ
  30. private var _xmlLoad:XmlLoad;
  31. private var _memberInfo:Array;
  32.  
  33. private var _animation:LogoAnimation;
  34. private var _memberDetail:MemberDetail;
  35. private var _memberList:MemberList;
  36.  
  37. /**
  38. * コンストラクタ
  39. */
  40. function App() {
  41. ZigoEngine.simpleSetup(Shortcuts, PennerEasing);
  42. //this
  43. this.loadMemberInfo();
  44. }
  45.  
  46. /**
  47. * メンバーリストのXMLファイルを読み込みます
  48. */
  49. private function loadMemberInfo():Void {
  50. this._xmlLoad = new XmlLoad('members.xml');
  51. // 読み込み終わったら onXmlLoad が呼ばれる
  52. this._xmlLoad.addEventObserver(this, XmlLoad.EVENT_LOAD_COMPLETE, 'onXmlLoad');
  53. this._xmlLoad.start();
  54. }
  55.  
  56. /**
  57. * XML読み込めました。
  58. */
  59. private function onXmlLoad():Void {
  60. // XmlUtil で XML をパース
  61. this._memberInfo = XmlUtil.xmlToObject(this._xmlLoad.getXml())['members'][0]['member'];
  62. this.showLogoAnimation();
  63. }
  64.  
  65. /**
  66. * ロゴのアニメーションしましょう。
  67. */
  68. private function showLogoAnimation():Void {
  69. // ループ2回目はメンバーリストを消す。1回目は _memberList は undefined だけど気にしない。
  70. this._memberList.removeMovieClip();
  71. // LogoAnimation クラスの MovieClip をつくります。
  72. this._animation = LogoAnimation(MovieClipUtil.attachMovieRegisterClass(LogoAnimation, this, 'Logo Animation', '_logo'));
  73. }
  74.  
  75. /**
  76. * メンバーを一人ご紹介。
  77. */
  78. private function showMember(id:Number):Void {
  79. // ロゴアニメーション消す。
  80. this._animation.removeMovieClip();
  81. // MemberDetail クラスの MovieClip をつくります。
  82. this._memberDetail = MemberDetail(MovieClipUtil.attachMovieRegisterClass(MemberDetail, this, 'Member Detail', '_detail'));
  83. // id が指定されてたらその人、そうじゃなかったらランダムに選んで setupDetail
  84. this._memberDetail.setupDetail(this._memberInfo[isNaN(id) ? Math.floor(Math.random() * this._memberInfo.length) : id]);
  85. }
  86.  
  87. /**
  88. * メンバーリストを表示しましょう。
  89. */
  90. private function showAllMembers():Void {
  91. // メンバー紹介消す
  92. this._memberDetail.removeMovieClip();
  93. // MemberList クラスの MovieClip つくります
  94. this._memberList = MemberList(MovieClipUtil.attachMovieRegisterClass(MemberList, this, 'Member List', '_list'));
  95. // メンバーリストわたして初期化
  96. this._memberList.setupList(this._memberInfo);
  97. }
  98.  
  99. }
  100. /* ここまで */

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: daisuke103 on February 11, 2008

You need to login to post a comment.