May 31, 2006

【黑羽】给新手和懒人们的实用小工具Kingda's Loader

ActionScript3天地会公测中...

kloader_demo.gif
转载请留下我Blog的链接 http://www.kingda.org/
上次发现有人在Blog上用我的文章居然连我名字都故意去掉,打击了我blog和做东西的积极性。sick.gif

Kingda's KLoader Version 1.5 发布! (2006-11-15)

Kingda's KLoader 黑羽翔天的小小装载器1.00 (loader 1.5) (编译后带默认皮肤仅11K)
Version 1.5版 新增特色:


  • 新增passData功能,将父容器的参数传递给要装载的目标swf。黑羽很

    喜欢的功能,适合大项目使用!


  • 为了方便不会ActionScript的兄弟,增加了参数面板输入,连一行代码也不用写了

  • 增加onLoadInit事件。区别和好处,详细见下文


另外,已经去除了每次使用KLoader,向Kingda.org报数的动作了。因为,测试已经完成,这个测试数据提交工作已经不再需要了。也谢谢大家之前的参与。

passData:

参数传递: 即将KLoader所在的MovieClip的所有Number, Boolean, String的属性传递给要加载的swf。 好处: 好比现在我们要加载一个test.swf,但我们需要传递给它user_id,user_level。本来我们在浏览器中加载它时只要写http://www.xxx.com/test.swf?user_id=kingda&user_level=veryhigh 就可以将这两个参数传给test.swf了。 但如果我们需要使用KLoader来加载这个test.swf的话,如何从外部传呢? 比如说我们建立了一个testloader.swf.在_root下,放了一个KLoader组件,将KLoader的targetURL设为test.swf,并把passData设为true. 那么我们使用同样的方法,test.swf就得到了所需要的参数。如下: http://www.xxx.com/testloader.swf?user_id=kingda&user_level=veryhigh

这只是最简单的运用,更大的用处在于。
我们要在某个MovieClip比如a_mc中,加载某个example.swf,并想直接传递给它一些参数(String,Boolean,Number类型),再也不需我们考虑什么加载完成再赋值之类的麻烦事了。比如说我们希望example加载后,a.swf就能得到isStarcrafter,age, username等三个参数,那么我们只要在加载之前设置:
a_mc.isStarcrafter = true;
a_mc.age = 26;
a_mc.username = "孙颖"
那么设置KLoader的passData=true后,a.swf一加载完,就可以得到这些参数。爽乎?

debug:

设为true后,KLoader会trace出很有有用的帮助和进程信息。 设为false后,除非出错,不然不会trace任何信息。

onLoadInit事件和loaded事件的区别:

该事件在swf装载成功,并已经初始化了第一帧内容后,发出。 而loaded事件是在装载成功,但尚未初始化之前发出。 属中高级用户使用时才会用到的差别。

特色:
1.支持根锁住,兼容性好。经测试可装载各种应用了_root的swf。
2.支持换皮肤。皮肤制作简单。
3.使用超级方便,代码量极大简化。现在load任何内容,只需要写一行代码即可。:cool.gif

对老手的话:
当你的项目中使用了大量的actionscirpt或者组件,那么你会发现设置link_id的“在第一帧导出”以及类的导出会给你带来很大困扰。首先就是loading往往会在40%甚至80%以后才会开始,形同虚设。
原因见:http://www.kingda.org/archives/kingda/2006/05/3load40.html
那么最简单的办法就是用我这个组件:
新建一个与你原来swf同长宽的fla,用KLoader来装载你原来的swf,loading就不会从40%或者更多才开始了。

例子演示请进smile.gif

http://www.kingda.org/tools/KLoader.html
装载的过程中可以点击 skin no1, skin no2来切换loading 皮肤。
点击unload 可以卸载movie.
两个演示,一个是三年前的作品,缥缈,5M
一个是4年前的作品,twins,2M。都足够大到慢慢看loading ,哈哈。
如果要重复观看loading演示的话,请先到internet >"工具">清除缓存才可以。

下载地址(2006-11-15 updated)
点击下载

安装方法参考:
(此处更新,清查看)2006-11-15
打开压缩包,有两个文件,KLoader.fla文件和KingdaLoader.mxp文件。
双击mxp文件,按提示安装。
如要使用KLoader,请直接从组件面板kingda.org目录中拖入Fla文件即可。然后就可以在参数面板上设置相关参数。


详细使用方法:
安装好后,使用时请直接从面板中拖动KLoader组件到你的Fla文件舞台上,命名为,比如说"aaa".
你要装载的swf的URL是"http://www.xxx.com/xxx.swf",或者是相对路径的"xxx/xxx.swf",
(URL可以是:要加载的 SWF、JPEG、GIF 或 PNG 文件的绝对或相对 URL。)
然后,在帧的动作面板中写:
aaa.load("http://www.xxx.com/xxx.swf");
即可。
注意: KLoader不但可以加载整个swf文件。也可以放在一个个Mc里加载子swf。这时候只要在load前多写一行
aaa.isLockroot = false;
就可以了。

如何换皮肤:做一个mc,有100帧,里面放什么动画随你便,只要展示大概从0-100的变化即可。
只要有一个 动态文本框,名字必须取为 "load_tip",即可。
然后设置该mc在库中的link_id(链接ID),比如设为 "xxx_mc"
那么换皮肤就可以使用:

kLoaderInstance.setup("xxx_mc");
kLoaderInstance.load("URL"); //这时皮肤就换了。

皮肤例子:
点击下载


API:
1如何动态创建KLoader?
a.
import org.kingda.tools.loader.KLoader;
createClassObject(KLoader, "yourLoaderName", depthNumber);

2.设置根锁住(好比你的KLoader命名为kLoaderInstance)
kLoaderInstance.isLockroot = true //锁住
kLoaderInstance.isLockroot = false //不锁
(在使用load前设置)


3.换皮肤:
kLoaderInstance.setup("skinLinkageID");
(在使用load前设置)

4.加载
kLoaderInstance.load("URLstring");

5.卸载
kLoaderInstance.unload();

6.对装载的影片的引用,供高级用户使用。
kLoaderInstance.container //MovieClip类型

7.装载成功事件,供高级用户使用。
事件对象结构: eO.type = "loaded"; eO.target = this; eO.target_mc = mc;

8.装载失败事件,供高级用户使用。
事件对象结构:eO.type = "error"; eO.target = this; eO.target_mc = mc; eO.errorCode = errorCode; eO.httpStatus = httpStatus;
注意,为了测试loader组件,目前内置了一个小小的统计,会将你装载的swf的 url字符串返回一下,便于我统计。正式版中会去掉,情支持。

www.kingda.org
e-mail:kingda1980@yahoo.comcool.gif

广告:哈哈,现在刚好是阿里妈妈推广期哦,你是站长吗?推荐注册阿里妈妈赚广告费

TrackBack

TrackBack URL for this entry:
http://www.kingda.org/mt/mt-tb.cgi/50

Comments (45)

Jimmy:

下载连接地址错误!兄弟看看,检查一下

Anonymous:

很棒,厉害

to jimmy:
呵呵,刚才改日记时,不小心改错了。
现在好了!
try try

我用的是flash8.为什么每次一搞就出错了.直接退出来了.不支持flash8????

你怎么用的?我就是用Flash8编译的,不太会有兼容问题

春天的粪球:

我用flash8 也遇到了问题,

拖动KLoader到主场景上,命名为"aaa"并在该真上写了路径
aaa.load("sound.swf");

一发布就出错了。确定后,整个flash都关闭了,不知道是不是我用的方法错了?

不错,我在两台机子上测也发现了类似情况。
我正在找原因,周末搞定。稍等

春天的粪球:

等着呢。呵呵。你上次教我的那个函数。对我的那个音乐swf不起作用呢。

春天的粪球:

跑去看球了?哈哈。。。

呵呵,是的。这两天在世界杯和AS3上花了不少时间,没有更新Blog。现在已经修复好了,在几台电脑Flash8上均测试成功。安装方法有改变,请仔细查看。

春天的粪球:

好,让我来检查检查你周末的作业。。哈哈。:)

春天的粪球:

现在我怎么也装不进去啊。装好了。在组件里也找不到啊。。

呵呵,你没仔细看说明。^^
现在不用在组件面板里找了。
执行完mxp文件后,就直接从我zip文件包里面的KLoader.fla文件拖KLoader组件到你想要的fla文件里去就可以了。

春天的粪球:

-_-#......丢人啊。哈哈。那我去试试

春天的粪球:

疯了。用了你的宝贝,还是搞不顶我的那个问题。

我是想把B.swf载入A.swf中。我在A里放你的宝贝,并第一真上写kk.load("B.swf");测试,影片是导入了,可是影片里的按牛没效果了,B.swf文件是一个flash新闻发布系统,跟一大堆ASP文件是关联在一起的。一头猛水。唉

真郁闷。。。

春天的粪球:

对了。最近要是不忙。放几张小猫的pp啊。哈哈。看看你的小猫长大没。。。

你影片里面的按钮是否直接或者间接访问了_root,如果是这样 ,你要加上一句
isLockroot = false
才能正常工作。
我们家小猫已经送走了,只剩一只了。 ^^

春天的粪球:

不加 isLockroot = false 的时候。还可以按一下。加了按牛根本就没反映。

里面有_root和_level1

要不你加我qq我发文件给你看看?

我过年的时候拣了3只吃奶的小猫。把它们养大了。都送人了。唉。伤感啊。最可惜是家人不给养。要不然。3只我都想自己养.

zjwps:

如何捕获加载完成的事件??

hellomoto:

什么时候出正式版

蓝:

我用了你的loading加在后的FLASH明显比以前放大了很多```请问怎么回事

ycccc8202:

关于这个组件的lockroot功能,我觉得方法不对,而且也没有效果


举个例子,外部载入的swf中第一真上写:
var P:String="lock success"
trace(_root.P)

//试试你的组件就知道无效果了~

晃:

我在用的时候一发布 就蹦出来个对话框 上面写的

Macromedia Flash Player已终止一项可能不安全的操作。
您计算机或网络上存在以下本地应用程序;
e:\index.swf
正在尝试与以下可访问internet的位置进行通信;
www.kingda.org
要让次应用程序与Internet通信,请单击设置。在更改设置后必须重新启动该应用程序。
确定 设置
愁死了,你的load的确好用,可是怎么才能没有对话框,??
pwf81725@126.com
qq651901052
希望你能告诉我怎么办~~

to yccc8202:
呵呵,测试期间我更新过几次KLoader.有一次的更新版本有错。你可能碰到那一次了。
现在1.5版,已经很稳定,不太会更新。用用看!

to 晃:
啊,那是我测试版时用来收集测试数据的。现在正式版中已经去掉了。试试! ^_^

晃:

为什么下载下来的压缩文件里只有一个
KingdaKLoader.mxp
没有flash文件

晃:

解决了~`
555
真的很感谢你~`

sayhelen:

强啊,黑羽翔天~

Anonymous:

装载这样的 FLASH游戏的时候 不成功

帧频和大小都是MC的,郁闷死了。

要加载到 0 层的时候才能和被调用

的FLASH文件帧频和大小都一样,怎

么样才能解决这个问题呢?

FLASH的地址:http://218.93.201.168/ywswf01/gameswf/2006/4/19/KvGRj1u553JfM68C9764.swf

仙娜:

总是报告这个错误,怎么回事啊?大侠!请帮忙解决. flashmx2004和8上都是这个错误:按照你教的方法作的:代码是:aaa.load("http://cnc.mtxsnow.net/bbs/UploadFile/2006-12/200612213451729280.swf");
错误提示是:**错误** 场景=场景 1, 图层=图层 1, 帧=1:第 14 行: 语句必须出现在 on/onClipEvent 处理函数中

仙娜:

换其他的flash也是这个错误,一次也没成功,换jpg也是,晕啊:(

to 仙娜:
Girl Flasher??
呵呵,你的错误在于将代码写到了MC上。记得点击关键桢,然后在动作面板上写代码。确认关键桢上出现了"a"的记号后,才好。然后可以编译了

仙娜:

谢谢你啊,黑羽,我是个初学的菜鸟,多多指教啊^_^ 我这就去试验

仙娜:

谢谢你啊,黑羽,我是个初学的菜鸟,多多指教啊^_^ 我这就去试验

Anonymous:

Macromedia Flash Player已终止一项可能不安全的操作。
您计算机或网络上存在以下本地应用程序;
e:\index.swf
正在尝试与以下可访问internet的位置进行通信;
www.kingda.org
要让次应用程序与Internet通信,请单击设置。在更改设置后必须重新启动该应用程序。
确定 设置

Anonymous:

昨天下载了个FLASH,想修改后用下,但连接出现了问题,我搞了一整天,都没有定,郁闷,希望你指点下,谢谢
一点击"连接"按扭,就出现如下对话框:
Macromedia Flash Player已终止一项可能不安全的操作。
您计算机或网络上存在以下本地应用程序;
e:\index.swf
正在尝试与以下可访问internet的位置进行通信;
www.kingda.org
要让次应用程序与Internet通信,请单击设置。在更改设置后必须重新启动该应用程序。
确定 设置

急盼赐教
QQ:281175786
EMAIL:mengdemeng103@126.com

to 楼上兄弟:
你下的是以前的测试期的版本吧。
那个版本我加了个统计功能,需要访问kingda.org。

正式版已经去掉了啊!你重新看看本页。
11-15日更新的。更加好用了。^_^

新功能介绍在
http://www.kingda.org/archives/kingda/2006/11/kloader15kloader_ver_15_releas.html

“kLoaderInstance.setup("xxx_mc");
kLoaderInstance.load("URL"); //这时皮肤就换了。”

请问上面的换肤代码是加在哪的??

搞不懂啊。

真的太好啦!

以后多来向你学!

支持:

非常支持作者,但老实说一句,完全看不懂,加了你的组件,完全没有效果,看来有时间最好做个图片教程,看你文字根本看不懂加再哪里,可能一些都算高手的才看得懂,你发表的对我门这些初哥根本没有用处!失望

陆行鸟:

这个东西看上去很不错,可是我按照教程来设置没任何效果。或许教程写的太简单,或许又是太复杂。

老大,你的字符串处理类有点小bug.不知道是不是我不会用,
只输入一个字符的时候返回总是空!

to movov:
是的,是有这个bug.
很早就修正了,放到我的StringTools包里去了。
我晚上回去看看,有没有在博客上更新。

critter:

您好,我觉得这个东东很好用,对我们新手真的很有帮助。

但是使用过程中遇到了一个小问题,请您帮忙看一下:
4个swf文件--
preload.swf 13k
main.swf 297k
01.swf 84k
02.swf 84k
在preload里用kloader预加载并播放main.swf;
在main里用kloader预加载并播放01和02;

问题是:在preload.swf里的kloader加载main.swf时显示加载文件总大小是445k,而实际上main.swf大小为297k,难道此时它把01和02swf也一并加载了吗?疑惑。

希望在preload.swf里的kloader仅仅加载实际大小297k的main.swf,为什么会显示是445k呢?

麻烦您给予解答,谢谢。

wind:

你好,我是flash新手,请问KLoader可以在Flex/as3中使用不?
谢谢.

fxtfxt:

我用了你的组件,很顺利就完成了一个加载外部swf的试验,可是总是在加载到40%左右就播放影片了,请老师指教,问题出在哪里?

留下高见,发表评论

个人信息不会外泄,请放心填写。

姓名和Email必填。

发表评论后,请耐心等待,不要频繁刷新。提交完成后,刷新一下本页即可看到您的评论。^_^

请输入验证字符"u" :
文字广告:你是站长吗?注册阿里妈妈赚广告费

最近发表

归档

全部
Creative Commons License
此 Blog 中的日记
遵循以下授权:
Creative Commons
(创作共用) 授权
.
Google PageRank
本站被Adobe官方MXNA新闻聚合器收录
本站被蓝色理想BXNA收录