×

关注微信公众号

免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频教程下载英语培训机构初中英语如何学随时随地聆听大师开讲/课堂
酷素材!视频教程打包下手绘教程抠图教程路径专辑photoshop cs3视频教程
楼主: szhangxp121

[求助] attachMovie载入多个mc的问题

[复制链接]
发表于 2009-2-6 18:48:59 | 显示全部楼层 |阅读模式
for (var i = 1; i<=n; i++) {
        this["btn_"+i].onRelease = function() {
                _root.createEmptyMovieClip("mc",1);
                mc.attachMovie("pic_"+i,"pic",1);
                mc._x = 0;
                mc._y = 0;
        };
}

在一张图上有多个按钮,点击一个按钮就载入与之对应的图形影片剪辑,显示在坐标(0,0),同时前面载入的图片消失。
不用loadmoive,代码作用在时间轴上

看看哪里出错了,谢谢
本帖的地址:http://bbs.jcwcn.com/forum.php?mod=viewthread&tid=230404
跟着教程做一遍,做完的图要到这里评论交作业,教程有看不懂的地方,可以在贴子下面评论
发表于 2009-2-6 19:17:02 | 显示全部楼层
酷素材
确认库中的图片的连接名称属性是:pic_1,pic_2.......pic_n,再有将:mc.attachMovie("pic_"+i,"pic",1);改为:mc.attachMovie("pic_"+i,"pic",i);
试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-6 19:22:44 | 显示全部楼层
也不行,由于按下一个扭才触发加载,但此时循环可能已经结束了,怎么解决还是不清楚
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-6 19:31:03 | 显示全部楼层
是不是我没说清楚
比如一有100多道菜,我点击其中一个菜名,布告栏里便会显示这道菜的图片以及介绍
由于菜很多,不能在每个菜名上加as代码,否则文件会很大,as放时间轴上,用attachmovie加载
回复 支持 反对

使用道具 举报

发表于 2009-2-6 19:39:25 | 显示全部楼层
酷素材
循环只是定义了每个按钮的onRelease事件,循环结束并不影响点击事件的触发。
回复 支持 反对

使用道具 举报

发表于 2009-2-6 21:12:37 | 显示全部楼层
酷素材
修改后的代码,后附原文件。
var n=4;

for (var i=1; i<n; i++) {
        this["btn_"+i].h = "pic"+i;
        this["btn_"+i].onRelease = function() {
                        var jz = this.h;
                _root.createEmptyMovieClip("mc",1);
                                mc.attachMovie(jz,"pic",1);
                mc._x = 200;
                mc._y = 100;
        };
}


[ 本帖最后由 sanbos 于 2009-2-6 21:14 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?[立即注册]

x
回复 支持 反对

使用道具 举报

发表于 2009-2-6 21:25:28 | 显示全部楼层
好像是as2的
回复 支持 反对

使用道具 举报

发表于 2009-2-6 21:40:54 | 显示全部楼层

回复 7楼 dreamdesign 的帖子

用attachMovie()方法当然是AS2的了,AS3不用attachMovie()。
回复 支持 反对

使用道具 举报

发表于 2009-2-6 21:55:59 | 显示全部楼层
AS3里好像要用loader,还没学到,粗略看了下
回复 支持 反对

使用道具 举报

发表于 2009-2-6 22:06:25 | 显示全部楼层
原帖由 sanbos 于 2009-2-6 21:12 发表
修改后的代码,后附原文件。
var n=4;

for (var i=1; i

辛苦博士了!
好有意思的代码!

请解释下这三句,为什么要这样写?
this["btn_"+i].h = "pic"+i;
var jz = this.h;
mc.attachMovie(jz,"pic",1);
回复 支持 反对

使用道具 举报

发表于 2009-2-6 22:08:13 | 显示全部楼层
为什么要引入 h ?
回复 支持 反对

使用道具 举报

发表于 2009-2-6 22:30:53 | 显示全部楼层
这个h是关键,楼主不成功主要就是这里的问题。因为这是一个循环,当循环结束时,i已与n一样大了,那么每个按钮实际上都是在调“pic_"+n元件,而不是其相应的"pic_"+i元件。我也是想了一会才想到这样可以解决。为每个按钮增加一个自定义属性h,这样就可以将每一次循环的i值存到这个h属性中,那么每个按钮就可以调其相应的元件了。

[ 本帖最后由 sanbos 于 2009-2-6 22:32 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2009-2-6 23:05:10 | 显示全部楼层

回复 12楼 sanbos 的帖子

谢谢博士。这个h用得真巧妙!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-7 14:00:22 | 显示全部楼层

回复 6楼 sanbos 的帖子

你这方法太棒了,非常感谢jc:cnheart
关键as学得还不熟,有些变量不会灵活运用
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
很不错。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | [立即注册]

本版积分规则

2345