PageRenderTime 48ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/Business Project/ku6/trunk/ku6lance/modules/DetailPageContainer.as

http://abellee87.googlecode.com/
ActionScript | 266 lines | 181 code | 76 blank | 9 comment | 16 complexity | 679914a717fa1977dd73c52e4ca4a6a0 MD5 | raw file
  1. package modules
  2. {
  3. import events.IOEvent;
  4. import flash.display.Bitmap;
  5. import flash.display.Loader;
  6. import flash.display.LoaderInfo;
  7. import flash.display.Sprite;
  8. import flash.events.Event;
  9. import flash.events.MouseEvent;
  10. import flash.net.URLRequest;
  11. import flash.text.TextFieldAutoSize;
  12. import flash.events.TextEvent;
  13. import net.CHub;
  14. import fl.data.DataProvider;
  15. import fl.managers.StyleManager;
  16. public class DetailPageContainer extends Sprite
  17. {
  18. private var detailPage:DetailPage = new DetailPage();
  19. private var _imgurl:String;
  20. private var _vid:Number;
  21. private var _hd:uint = 1;
  22. private var _vodsArr:Array = [];
  23. private var loader:Loader = new Loader();
  24. //for c
  25. private var chub:CHub = new CHub();
  26. public function DetailPageContainer()
  27. {
  28. super();
  29. init();
  30. addListener();
  31. }
  32. private function init():void{
  33. this.addChild(detailPage);
  34. this.width = detailPage.width;
  35. this.height = detailPage.height;
  36. detailPage.playBtn.buttonMode = true;
  37. detailPage.btnBack.buttonMode = true;
  38. //detailPage.chapterList.autoSize = TextFieldAutoSize.LEFT;
  39. detailPage.chapterList.setStyle("skin", new Sprite());
  40. detailPage.chapterList.setStyle("borderStyle", "none");
  41. detailPage.chapterList.setStyle("dropShadowEnabled", false);
  42. detailPage.chapterList.setStyle("borderThickness", 0);
  43. detailPage.chapterList.setStyle("backgroundAlpha", 0);
  44. detailPage.chapterList.setStyle("cellRenderer", CustomCellRenderer);
  45. detailPage.chapterList.setStyle("upArrowUpSkin", new Sprite());
  46. detailPage.chapterList.setStyle("downArrowUpSkin", new Sprite());
  47. detailPage.chapterList.setStyle("trackUpSkin", ListTrack);
  48. detailPage.chapterList.setStyle("trackOverSkin", ListTrack);
  49. detailPage.chapterList.setStyle("trackDownSkin", ListTrack);
  50. detailPage.chapterList.setStyle("thumbUpSkin", ListThumbIcon);
  51. detailPage.chapterList.setStyle("thumbOverSkin", ListThumbIcon);
  52. detailPage.chapterList.setStyle("thumbDownSkin", ListThumbIcon);
  53. detailPage.chapterList.setStyle("thumbIcon", new Sprite());
  54. StyleManager.clearStyle("focusRectSkin");
  55. }
  56. private function addListener():void{
  57. detailPage.btnBack.addEventListener(MouseEvent.CLICK, backToPreStep);
  58. detailPage.playBtn.addEventListener(MouseEvent.CLICK, playMovie);
  59. //detailPage.chapterList.addEventListener(TextEvent.LINK, showChapterMovie);
  60. detailPage.chapterList.addEventListener(Event.CHANGE, showChapterMovie);
  61. }
  62. private function playMovie(event:MouseEvent):void{
  63. if( _hd == 0 )
  64. return;
  65. trace(_vid);
  66. //"ku6p2p://playfid/"+id;
  67. trace(event.target.name);
  68. chub.CmdCall("proxyevent","listbtn,setupfidimg," + _vid + "|" + _imgurl);
  69. var _hdScheme:uint = 0;
  70. if( _hd >= 2 )
  71. _hdScheme = 1;
  72. chub.CmdCall("proxyevent","playcmd,ku6p2p://playfid/"+_vid+"/"+_hdScheme);
  73. }
  74. private function imageLoaded(event:Event):void{
  75. loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, imageLoaded);
  76. var bitmap:Bitmap = event.target.content as Bitmap;
  77. bitmap.width = 130;
  78. bitmap.height = 170;
  79. detailPage.movieCover.mouseEnabled = false;
  80. detailPage.movieCover.mouseChildren = false;
  81. detailPage.movieCover.addChild(bitmap);
  82. }
  83. public function addInfo(obj:Object):void{
  84. while(detailPage.relatedMC.numChildren){
  85. detailPage.relatedMC.removeChildAt(detailPage.relatedMC.numChildren - 1);
  86. }
  87. this.imageURL = obj.pic;
  88. this._vid = obj.id;
  89. detailPage.movieTitle.selectable = false;
  90. detailPage.movieTitle.autoSize = TextFieldAutoSize.LEFT;
  91. detailPage.movieTitle.text = obj.title;
  92. this.hd = uint(obj.gqSmart);
  93. detailPage.movieAbout.text = "??: "+""+"\n??: "+obj.director+"\n??: "+""
  94. +"\n??: "+obj.star+"\n??: "+obj.sort+"\n????/??: "+obj.zone+"\n??: "+obj.Language+"\n????: "+obj.date;
  95. detailPage.desTxt.text = obj.desc;
  96. //detailPage.chapterList.text = "";
  97. _vodsArr = [];
  98. if(obj.chapters && obj.chapters.length){
  99. trace(obj.chapters.length + ">>>>>>>>");
  100. detailPage.chapterList.labelField = "gqTitle";
  101. detailPage.chapterList.dataProvider = new DataProvider(obj.chapters);
  102. for each(var o:Object in obj.chapters)
  103. {
  104. //detailPage.chapterList.htmlText += "<a href='event:"+o.vid+"'>"+o.gqTitle+"</a><br>";
  105. //trace(o.vid);
  106. _vodsArr.push(o.vid);
  107. }
  108. }else{
  109. detailPage.chapterList.dataProvider = new DataProvider();
  110. }
  111. //trace(detailPage.chapterList.htmlText);
  112. if(obj.filmRelatedList && obj.filmRelatedList.length){
  113. for(var i:uint=0; i < obj.filmRelatedList.length; i++){
  114. var oo:Object = obj.filmRelatedList[i];
  115. var relatedFilm:RelatedMC = new RelatedMC();
  116. relatedFilm.buttonMode = true;
  117. relatedFilm.fid = oo.id;
  118. relatedFilm.hd = oo.gqSmart;
  119. relatedFilm.showInfo(oo);
  120. relatedFilm.x = i * (relatedFilm.width + 10);
  121. relatedFilm.y = 0;
  122. relatedFilm.addEventListener(MouseEvent.CLICK, showNextDetailPage);
  123. detailPage.relatedMC.addChild(relatedFilm);
  124. }
  125. }
  126. this.dispatchEvent(new IOEvent(IOEvent.DETAIL_PAGE_READY));
  127. }
  128. private function showChapterMovie(event:Event):void{
  129. trace( "showChapterMovie:" + _hd );
  130. if( _hd == 0 )
  131. return ;
  132. var cvid:String = detailPage.chapterList.selectedItem.vid;
  133. var gq:uint = 1;
  134. chub.myTrace("Current vod:" + cvid);
  135. //chub.myTrace("All vods size:" + _vodsArr.join("0x2c") );
  136. chub.CmdCall("proxyevent","listbtn,setupfidimg," + cvid + "|" + _imgurl);
  137. if( _vodsArr.length == 1)
  138. {
  139. chub.CmdCall("proxyevent","listbtn,setupfidvids," + _vid + "|" + cvid ) ;
  140. chub.CmdCall("proxyevent","playcmd,ku6p2p://playvod/"+ cvid );
  141. }
  142. else{
  143. trace(_vodsArr.join("0x2c"));
  144. chub.CmdCall("proxyevent","listbtn,setupfidvids," + _vid + "|" + _vodsArr.join("0x2c")) ;
  145. chub.CmdCall("proxyevent","playcmd,ku6p2p://playvod/"+ _vodsArr.join("0x2c") + "/"+ cvid);
  146. }
  147. }
  148. private function showNextDetailPage(event:MouseEvent):void{
  149. var relatedFilm:RelatedMC = event.currentTarget as RelatedMC;
  150. var ioEvent:IOEvent = new IOEvent(IOEvent.NEXT_DETAIL_PAGE);
  151. ioEvent.result = {};
  152. ioEvent.result.vid = relatedFilm.fid;
  153. var hdflag:uint = 0;
  154. if( relatedFilm.hd >=2 )
  155. hdflag = 1;
  156. ioEvent.result.hd = hdflag;
  157. ioEvent.result.m = "getPlayPageData";
  158. this.dispatchEvent(ioEvent);
  159. }
  160. private function backToPreStep(event:MouseEvent):void{
  161. this.dispatchEvent(new IOEvent(IOEvent.PRE_STEP));
  162. }
  163. public function set imageURL(str:String):void{
  164. _imgurl = str;
  165. loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
  166. loader.load(new URLRequest(str));
  167. }
  168. public function get imageURL():String{
  169. return _imgurl;
  170. }
  171. public function set vid(value:Number):void{
  172. _vid = value;
  173. }
  174. public function get vid():Number{
  175. return _vid;
  176. }
  177. public function set hd(value:uint):void{
  178. trace("Detail set hd :" + value);
  179. _hd = value;
  180. if(value == 0){
  181. detailPage.playBtn.visible = false;
  182. }else{
  183. detailPage.playBtn.visible = true;
  184. }
  185. }
  186. public function get hd():uint{
  187. return _hd;
  188. }
  189. }
  190. }