找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2089|回复: 3

[AS1&2] 关于MCL的loadClip问题

[复制链接]
发表于 2008-10-8 02:27:02 | 显示全部楼层 |阅读模式
两个月前学了一下movieClipLoader,现在又忘光了。
哎,鄙视自己。
想做一个读取xml地址的东东,就是卡在了MCL这里。

我的场景里有一个container_mc,它里面还有一个contents(为了以后加属性),我想在container_mc.contents里面动态加载的pic_mc0、pic_mc1、pic_mc2添加三张图片,感觉是红色标注的地方错了,可是又不会改,求助版主和诸位大虾了!另外,是不是我这样做的思路有问题?
//初始化定义
stop();
//定义预载和侦听
var preload_mcl = new MovieClipLoader();
var preload_listener = new Object();
preload_mcl.addListener(preload_listener);
trace(myxml.firstChild.childNodes);
//函数部分
//动态加载缩略图
function srartPreload(url, target)
{
        for (var i = 0; i<3; i++) {
                imgurl = myxml.firstChild.childNodes[i].attributes.path;
                trace(imgurl);
                container_mc.contents.attachMovie("pic_mc","pic_mc"+i,i-10000,{_x:i*990+40, _y:0});
                preload_mcl.loadClip(imgurl,container_mc.contents.pic_mc[i]);
        }
        /*url = myxml.firstChild.childNodes[i].firstChild.toString();
        trace(url);
        target._btn.onPress = function()
        {
                getURL(url, "_blank");
        };*/
}
//
preload_listener.onLoadStart = function(target)
{
        trace("进入onLoadStart");
        target._parent.attachMovie("preloader_mc","preloader_mc",1,{_x:465, _y:180});
};
preload_listener.onLoadProgress = function(target, loaded, total)
{
        trace("进入onLoadProgress");
        target._alpha = 0;
        var percent = loaded/total;
        target._parent.preloader_mc.count = Math.round(percent*100);
        trace("percent = "+percent);
};
preload_listener.onLoadComplete = function(target)
{
        trace("进入onLoadComplete");
        target._parent.preloader_mc._visible = false;
        target._alpha = 100;
};
preload_listener.onLoadInit = function(target)
{
        trace("进入onLoadInit");
        target._width = 930;
        target._height = 393;
};

[[i] 本帖最后由 sji716 于 2008-10-8 02:30 编辑 ]
发表于 2008-10-8 08:20:27 | 显示全部楼层
container_mc.contents["pic_mc"+i];
回复 支持 反对

使用道具 举报

发表于 2008-10-8 09:06:21 | 显示全部楼层
其实更喜欢单独写个函数用于加载,给LZ个写MCL的建议

先定义预加载函数

function preload (tgurl, tg)
{
        mcl = new MovieClipLoader ();
        lis = new Object ();
        lis.onLoadStart = function ()
        {
                //加载loading到被用做加载的MC所处的场景内的指定位置(sx,sy)
                tg._parent.attachMovie ("loadingmc", "loading", getNextHighestDepth (), {_x:sx, _y:sy});
        };
        //加载过程百分比显示,也可不写,直接在loading剪辑里做动画
        lis.onLoadProgress = function (mc, bl, bt)
        {
                tg._parent.loading.percent = bl/bt;
                tg._parent.loading.txt = Math.round (tg._parent.loading.percent*100)+"%";
        };
        lis.onLoadInit = function ()
        {
                //移除loading
                tg._parent.loading.removeMovieClip ();
                MC初始化语句;
        };
        mcl.addListener (lis);
        mcl.loadClip (tgurl, tg);
}

加载函数完结,然后要用的时候只需要调用这个函数就可以了。比如


for (i=1; i<=ammount; i++)
{
        mc = attachMovie ("mc", "mc"+i, i, {_x:sx, _y:sy});
        mc.url = "mcurl";
        mc.preload (mc.url, mc.preloadmc);
}


这样一来思路就不会混乱,修改预加载的函数也方便。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-8 09:38:39 | 显示全部楼层
先谢谢诸位大虾,今天晚上细细研习
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2021-3-6 19:22 , Processed in 0.053528 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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