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

[AS3]As3与lightbox显示实时加载图片的进度情况

时间:2013-07-17 09:12CuPlayer.com
[AS3]As3与lightbox显示实时加载图片的进度情况

不久前在csdn的js板块看到一个as+js+lightbox动态加载图片显示进度的程序,随便帮改了下代码。后面要帮女朋友搞她设计作品的展示时发 现代码中的flash只提供了成功加载时的回调函数,而如果图片未找到或者刚开始加载时没有什么提示。所以自己把swf反编译了一下,修改了as脚本,使 之拥有了4个回调,加载图片开始,过程,成功加载和错误的回调,增强下用户体验O(∩_∩)O~

  1. //loadUrl:要加载的图片地址URL 
  2. //loading:加载过程反馈信息的js函数名 ,参数 function(p:完成百分比,loaded:已经加载的,total:总大小)  
  3. ///Success:成功加载完成后执行的js函数名,参数 function(w:图片原始长度,h:图片原始宽) 
  4. //Failure:加载失败执行的函数名称,参数 function(msg:错误信息) 
  5. function loadPicture(loadUrl,loading,Success,Failure) 
  6.     var _loc2 = random(1000000000); 
  7.     _root.createEmptyMovieClip("loadMc" + _loc2, _root.getNextHighestDepth()); 
  8. //这里flash使用了一个类as.loadPic,在下面贴出代码 
  9.     new as.loadPic(_root["loadMc" + _loc2], loadUrl 
  10. , function (ob){//成功时调用js传递进来的js回调函数,下面同理 
  11.         new flash.external.ExternalInterface.call(Success,loadUrl, ob._width, ob._height); 
  12.     } 
  13. , function (loadN,loaded,total){//过程 
  14.         new flash.external.ExternalInterface.call(loading, loadN, loaded,total); 
  15.     } 
  16. , function (err){//发生错误 
  17.         new flash.external.ExternalInterface.call(Failure,err); 
  18.     }); 
  19. } // End of the function 
  20. //使用flash.external.ExternalInterface接口注册给js调用的函数 
  21. flash.external.ExternalInterface.addCallback("forJS", null, loadPicture); 

loadPic.as源代码

  1. class as.loadPic{ 
  2.     function loadPic(ob, uri,Success, loadIng,Failure){ 
  3.         if (ob && uri){ 
  4.             var _loc2 = new MovieClipLoader(); 
  5.             var _loc1 = new Object(); 
  6.             var loadnum; 
  7.             _loc1.onLoadStart = function (tmc){ 
  8.             }; 
  9.             _loc1.onLoadProgress = function (tmc, loadedBytes, totalBytes){ 
  10.                 loadnum = int(loadedBytes / totalBytes * 100); 
  11.                 loadIng(loadnum,loadedBytes,totalBytes); 
  12.             }; 
  13.             _loc1.onLoadComplete = function (tmc){ 
  14.             }; 
  15.             _loc1.onLoadInit = function (tmc){ 
  16.                 if (Success && typeof(Success) == "function")Success(tmc); 
  17.             }; 
  18.             _loc1.onLoadError = function (tmc, errc){ 
  19.                 if (Failure && typeof(Failure) == "function")Failure(errc); 
  20.             }; 
  21.             _loc2.addListener(_loc1); 
  22.             _loc2.loadClip(uri, ob); 
  23.         }  
  24.     }  

热门文章推荐

请稍候...

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

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