·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3加载swf,jpg,gif,png通用代码附详细注释说明

时间:2013-07-17 09:23CuPlayer.com
[AS3]as3加载swf,jpg,gif,png通用代码附详细注释说明,as3加载swf,as3加载jpg,as3加载gif,as3加载png
  1. System.useCodePage=true; 
  2. //CuPlayer.com提示编码支持中文. 
  3. var loader:Loader=new Loader(); 
  4.  
  5. /* CuPlayer.com提示设置舞台外部加载对象的的固定显示区域 */ 
  6. var SHOW_X : Number = 200; 
  7. var SHOW_Y : Number = 50; 
  8. var SHOW_W : Number = 400; 
  9. var SHOW_H : Number = 300; 
  10.  
  11. /******************************************************************** 
  12. *所有对象的监听事件在本区域添加,请着重理解addEventListener带参传递的用法 
  13. ********************************************************************/ 
  14.  
  15. loadswf_btn.addEventListener(MouseEvent.MOUSE_DOWN,loadobject("1.JPG")); 
  16. loadjpg_btn.addEventListener(MouseEvent.MOUSE_DOWN,loadobject("6.jpg")); 
  17.  
  18.  
  19. /********************************************************************** 
  20. 下面是加载、加载过程、加载完毕等诸事件的处理函数,如无必要,勿需更改。 
  21. **********************************************************************/ 
  22. //在预设主显示区中心建立一动态文本框,用以显示加载进度信息 
  23. var inputFormat:TextFormat = new TextFormat(); 
  24. inputFormat.font = "宋体";//字体 
  25. inputFormat.size = 12;//字体大小 
  26. inputFormat.color=0XFF0000; 
  27. var loader_txt:TextField = new TextField(); 
  28. loader_txt.type = TextFieldType.DYNAMIC;//文本格式 
  29. loader_txt.defaultTextFormat = inputFormat; 
  30. loader_txt.height = 20; 
  31. loader_txt.width = 200; 
  32. loader_txt.x=SHOW_X+(SHOW_W-200)/2; 
  33. loader_txt.y=SHOW_Y+(SHOW_H-20)/2; 
  34. this.addChild(loader_txt); 
  35.  
  36.  
  37. //CuPlayer.com提示函数功能:实现addEventListener带参传递 
  38. function loadobject(parm:String):Function { 
  39. var func=function(e):void{                    
  40. loader.unload();      
  41. //此处支持加载任何外部可显示对象,包括jpg,flv,swf等,如果是swf,请注意有版本区别(V>=9.0) 
  42. loader.load(new URLRequest(parm)); 
  43.  
  44. //定义加载过程、加载异常、加载完毕,卸载四个监听事件 
  45. //为了保证连续跟踪,下面所有监听函数,不能定义到loadobject函数的外面 
  46. loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress); 
  47. //url地址错误,需要单独捕获,try catch语句块是捕获不到的 
  48. loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioError); 
  49. loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); 
  50. loader.contentLoaderInfo.addEventListener(Event.UNLOAD, unloadobject); 
  51. }; 
  52. return func; 
  53. } 
  54.  
  55. //CuPlayer.com提示函数功能:捕获加载进度 
  56. function loadProgress(e:ProgressEvent):void { 
  57. loader_txt.text="正在加载数据: "+ Math.round(e.bytesLoaded/e.bytesTotal * 100)+"%"; 
  58. } 
  59. //函数功能:捕获加载异常(主要是URL错误异常) 
  60. function ioError(evt:IOErrorEvent) { 
  61. evt.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,ioError); 
  62. loader_txt.text="加载失败,未找到相关文件。"; 
  63. } 
  64.  
  65. //函数功能:处理加载成功事件,特别注意:只有loader加载成功后,才能对其进行初始化设置 
  66. function loadComplete(e:Event):void { 
  67.  
  68. loader_txt.text="";//CuPlayer.com提示清空加载信息提示 
  69. loader.alpha=0.9;//as3中,alpha取值区间更改为[0,1] 
  70. // 载入MC的舞台宽度 
  71. var t_stageW : Number = loader.contentLoaderInfo.width; 
  72. // 载入MC的舞台高度 
  73. var t_stageH : Number = loader.contentLoaderInfo.height; 
  74.  
  75. //当预设的主显示区的宽度和高度比要加载的对象的宽度和高度都小时,才等比例缩放,否则,全部呈现(只为防止失真) 
  76. if (SHOW_W<t_stageW && SHOW_H<t_stageH) { 
  77. //是否缩放MC适应显示宽度(载入MC舞台的宽高比是否大于显示区域宽高比) 
  78. var scaleflag : Boolean = t_stageW / t_stageH > SHOW_W / SHOW_H; 
  79. //缩放比率 
  80. var t_scaleRate : Number = scaleflag ? SHOW_W / t_stageW : SHOW_H / t_stageH; 
  81. loaderloader.contentLoaderInfo.content.scaleX = loader.contentLoaderInfo.content.scaleY = t_scaleRate; 
  82. loader.contentLoaderInfo.content.x = SHOW_X; 
  83. loader.contentLoaderInfo.content.y = SHOW_Y; 
  84. //当缩放时,根据实际情况,居中定位显示 
  85. if (scaleflag) { 
  86. loader.contentLoaderInfo.content.y += (SHOW_H - t_stageH * t_scaleRate) / 2; 
  87. } else { 
  88. loader.contentLoaderInfo.content.x += (SHOW_W - t_stageW * t_scaleRate) / 2; 
  89. } 
  90. } else { 
  91. //当全部呈现时,需要居中呈现 
  92. loader.contentLoaderInfo.content.x=SHOW_X+(SHOW_W-t_stageW)/2; 
  93. loader.contentLoaderInfo.content.y=SHOW_Y+(SHOW_H-t_stageH)/2; 
  94.  
  95. } 
  96.  
  97. // 如果是swf,则用原swf的帧频进行播放 
  98. //this.stage.frameRate = loader.contentLoaderInfo.frameRate; 
  99. // CuPlayer.com提示显示所加载的对象 
  100. this.addChild(loader); 
  101. } 
  102. //函数功能:捕获卸载事件,保证完全卸载(纠正AS3本身的卸载BUG) 
  103. function unloadobject(e:Event) { 
  104. //CuPlayer.com提示待完善 
  105. }  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器