收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 1972|回复: 13

[AS1&2] 删除 onEnterFrame 时 loading就没反映了,求解...

[复制链接]
发表于 2010-7-28 22:50:01 | 显示全部楼层 |阅读模式
  1. var myLoad = new XML();
  2. myLoad.ignoreWhite = true;
  3. myLoad.load("imgList.php");
  4. myLoad.onLoad = function(success) {
  5.         if (success) {
  6.                 img_mc._x = -imgW;
  7.                 x = 0;
  8.                 imgList();
  9.                 makeBtn();
  10.         } else {
  11.                 trace("错误!装载xml文件不成功!");
  12.         }
  13. };

  14. function imgList() {
  15.         myList = myLoad.firstChild.childNodes;
  16.         myListLen = myList.length;
  17.         for (i=1; i<myListLen+2; i++) {
  18.                 img_mc.loadImg0.duplicateMovieClip("loadImg"+i,i+1);
  19.         }
  20.         for (i=0; i<myListLen+2; i++) {
  21.                 loadImgs = eval(img_mc["loadImg"+i]);
  22.                 loadImgs.i = i;
  23.                 //初始化当前图片的指针
  24.                 loadImgs.loadImg();
  25.                 //执行图片装载函数
  26.         }
  27.         bar._visible = true;
  28.         this.onEnterFrame = function() {
  29.                 aa = int(loadImgs.getBytesLoaded()/loadImgs.getBytesTotal()*100);
  30.                 bar.txt.text = aa;
  31.                 if (aa == 100) {
  32.                         new mx.transitions.Tween(this, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 15, false);
  33.                         //bar._visible = false;
  34.                         //delete this.onEnterFrame;
  35.                 }
  36.         };
  37. }

  38. MovieClip.prototype.loadImg = function() {
  39.         //mc装载图片函数
  40.         if (this.i == 0) {
  41.                 //在最前增加张最后的图片,方便向左循环。
  42.                 this.loadMovie(myList[myListLen-1].attributes.path);

  43.         } else if (this.i == myListLen+1) {
  44.                 //在最后帧位置怎加第一张图片,方便向右循环
  45.                 this.loadMovie(myList[0].attributes.path);
  46.         } else {
  47.                 this.loadMovie(myList[this.i-1].attributes.path);
  48.         }
  49.         this._x = this.i*imgW;
  50. };
复制代码
发表于 2010-7-28 23:25:32 | 显示全部楼层
就是靠onEnterFrame进行 不断的查询更新
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-28 23:47:14 | 显示全部楼层
可是的当加载完成后我要把他删除掉,隐藏LOADING就不行了啊,,
回复 支持 反对

使用道具 举报

发表于 2010-7-29 06:49:12 | 显示全部楼层
bar._visible = false;
         delete this.onEnterFrame;

从代码上看,是行的

但推荐用MovieClipLoader来加载
好多年没用过 loadMovie 了
回复 支持 反对

使用道具 举报

发表于 2010-7-29 09:19:19 | 显示全部楼层
if (aa >= 100) {
            new mx.transitions.Tween(this, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 15, false);
            //bar._visible = false;
            //delete this.onEnterFrame;
        }


一般用大于等于
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-29 09:29:53 | 显示全部楼层
pic.rar (143.99 KB, 下载次数: 157)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-29 09:43:08 | 显示全部楼层
原帖由 [i]HSZZLZL 于 2010-7-29 09:19 发表
if (aa >= 100) {
            new mx.transitions.Tween(this, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 15, false);
            //bar._visible = false;
            //delete this.onEnterF ...

我一开始也用大于等于100,效果一样的,
if (aa >= 100) {
            new mx.transitions.Tween(this, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, 15, false);
            bar._visible = false;
          delete this.onEnterFrame}
我没注释delete this.onEnterFrame,loading就出问题了
回复 支持 反对

使用道具 举报

发表于 2010-7-29 09:44:00 | 显示全部楼层
  1. //.................
  2. this.onEnterFrame = function() {
  3.             aa= int(loadImgs.getBytesLoaded()/loadImgs.getBytesTotal()*100);//楼主的文件中这里写的10 ,改成100
  4.             bar.txt.text = aa
  5.             if (aa==100) {
  6.                 bar._visible = false;//这两行被屏蔽掉了,打开
  7.                 delete this.onEnterFrame;
  8.             }
  9.             trace(aa);
  10.         };

  11. .........
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-29 09:52:15 | 显示全部楼层

回复 8# flash023 的帖子

不好意思,版主,可能刚才我改文件的时候没注意,
if (aa==100) {
              bar._visible = false;//这两行不屏蔽掉了,loading就不显示了,
                delete this.onEnterFrame;
            }
而且我trace(aa)的时候发现一开始就输出了100
回复 支持 反对

使用道具 举报

发表于 2010-7-29 09:57:14 | 显示全部楼层
楼主的代码有多个问题
多个 loadImg在加载,你这样写只能检测到最后一个

换用MovieClipLaoder加载吧,具体使用方法在帮助中和以前的旧帖子中都有
回复 支持 反对

使用道具 举报

发表于 2010-7-29 10:02:00 | 显示全部楼层
for (i=0; i<myListLen+2; i++) {
                loadImgs = eval(img_mc["loadImg"+i]);
                loadImgs.i = i;
                //初始化当前图片的指针
                loadImgs.loadImg();
                //执行图片装载函数
                bar._visible = true;
        }
               
                this.onEnterFrame = function() {
                       
                        aa= int(loadImgs.getBytesLoad




我感觉这里很不合理啰  怎么在循环体外引用loadImgs 的 引来引去哪不只引用最后一个吗?

这段代码是你自己加的吧?
回复 支持 反对

使用道具 举报

发表于 2010-7-29 10:03:45 | 显示全部楼层
xxxxxxx 重新编辑

[[i] 本帖最后由 HSZZLZL 于 2010-7-29 10:09 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2010-7-29 10:06:27 | 显示全部楼层
按楼主的逻辑,应该这样改一下比较好!
但还是强烈不推荐这么做

MovieClipLoader+TweenLite 可以让楼主的代码简洁到现在的1/3,而且条理更清楚


以下是不推荐的按楼主的思路改进后的

TT.rar

145.13 KB, 下载次数: 150

回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-29 10:29:48 | 显示全部楼层
谢谢版主的意见,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )  

GMT+8, 2020-11-24 06:08 , Processed in 0.093516 second(s), 11 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表