弃天笑(soda.C)的专栏
专注于Flash RIA和Flash网络游戏开发
登录
注册
全站
当前博客
空间
博客
好友
相册
留言
弃天笑
ID:sujun10
共
19529
次访问,排名
5903
好友
7
人,关注者
26
人
从事过java应用开发,flash网络游戏开发,现在从事flash教育系统开发
sujun10的文章
原创 34 篇
翻译 4 篇
转载 7 篇
评论 55 篇
弃天笑的公告
我的新blog开张了,以后第一 时间更新的是那个blog了,之后才在这里更新,有兴趣的人可以到那里去看,主要是说Flash RIA和flash游戏的 www.sujun.org
最近评论
sujun10:
没试过,应该要做类似按钮之类的,或者插入html标签
丁仙霖:
非常感谢,虽然有些地方,没看懂
123456:
小弟,如何在flash中加入email 的链接??
paul7525:
还不错啊,有收获~~谢谢啦
paul7525:
还不错啊,有收获~~谢谢啦
文章分类
AS3.0
(RSS)
Blue框架
(RSS)
Flash Action 2.0
(RSS)
Flash Classes
(RSS)
Flash Media Server
(RSS)
Flash Version
(RSS)
Flash&Java
(RSS)
Flash(RIA)作品
(RSS)
Flash相关
(RSS)
Flex
(RSS)
J2SE
(RSS)
Java Classes
(RSS)
Java开源框架
(RSS)
Red5
(RSS)
杂谈
(RSS)
收藏
相册
我的相片
Flash
asfox Blog
弃天笑的小窝
存档
2008年08月(3)
2008年06月(1)
2008年05月(2)
2008年03月(1)
2008年02月(2)
2008年01月(2)
2007年12月(3)
2007年11月(1)
2007年10月(6)
2007年06月(2)
2007年05月(6)
2007年04月(8)
2007年03月(8)
软件项目交易
订阅我的博客
[AS3]使用RSL进行AS瘦身编程
收藏
新一篇: [AS3]Flash Socket底层接受数据的初级处理
|
旧一篇: [AS3]在反射中使用静态方法
RSL是什么??RSL是 Runtime Shared Library的简称。我个人的理解时是在swf编译的时候,不把在该swf中使用的一些类库 编译进swf中去,而是在该swf运行的时候动态加载,该swf是要使用的类库,从而达到减小swf体积的目的。
做as编程的人都知道,如果每个swf都引用了同一个类的话,那么你编译每个swf的时候,都会把那个类编译进去,也是就是说,无形中对整个应用而言,就多了几份类库而增大了内容
例 如你有 a.swf,b.swf,c.swf,同时引用了sodaTest.as这个类,传统的做法是每个swf都把sodaTest编译进去。而使用 RSL技术的话,则把sodaTest.as这个类编译进一个特殊的swf进去(lib.swf,该swf包含sodaTest),在a,b,c运行的时 候,把lib.swf这个swf加载进去就可以了。三个swf共享一个,从而减小了体积
下面,看具体的设置步骤吧(下面提供的方法只是多种方法的其中之一:),使用工具是FlexBuilder,以asiwng代码库为例子
首先我们需要制作一个被多个swf需要加载swf代码库
1.把需要的代码打包进一个swf里去,该步骤前需要一个你需要打包进代码库的swc
(可以在FB中建立一个Flex Library Project,利用把你需要的代码生成swc)
新建个Flex Library Project为Aswing
2.新建一个AswingDll的ActionScript Project项目
新建个AswingDll
3.接着在AswingDll项目属性中,增加命令,在ActionScprit Compiler 增加下面的命令
-include-libraries
E:\workspace\FlexProject\Aswing\bin
其中E:\workspace\FlexProject\Aswing\bin是你需要做加载的代码库的swc的目录位置
(我这里是用我自己设置的目录去生成,而不是在flex中刚建立的)
4.接着编译就行了.....看生成AswingDll,用破解软件看看,是不是多了你需要的代码了:),大小有400多K,包括了awing的代码了
5.接着新建一个AswingTest的ActionScript Project项目,用来使用这个AswingDll
在AswingTest这个项目属性还需要做一些设置的,在Library Path中,添加aswing代码库或者aswing的swc
看图片中蓝色的部分,双击它,弹出下面的界面,选择Exteral这个选项,再确定就可以了
做完这些步骤后,就可以去编译自己的程序啦
具体的我就先不写了,可以参考www.flashdll.org,里面有详细的例子
(明天我再出一个使用例子)
有什么问题,就到www.actionscript3.cn提问吧
呵呵
之前的代码修改了一下
package
...
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.Event;
import flash.system.LoaderContext;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.utils.getDefinitionByName;
import org.aswing.AsWingManager;
import org.aswing.JFrame;
[SWF (width
=
800
, height
=
600
)]
public class Main extends Sprite
...
{
private
var
loader:Loader;
public
function
Main()
...
{
loader
=
new
Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoader);
loader.load(
new
URLRequest(
"
dll/AsWingDLL_1_3_0.swf
"
),
new
LoaderContext(
false
, ApplicationDomain.currentDomain));
}
private
function
onLoader(event:Event):
void
...
{
AsWingManager.initAsStandard(
this
);
var
frame:JFrame
=
new
JFrame(
this
,
"
测试反射
"
);
frame.setSizeWH(
400
,
300
);
frame.show();
}
}
}
效果图
很明显,可以看到体积非常小,
发表于 @
2008年05月11日 13:34:35
|
评论(
loading...
)
|
编辑
新一篇: [AS3]Flash Socket底层接受数据的初级处理
|
旧一篇: [AS3]在反射中使用静态方法
评论:没有评论。
发表评论
姓 名:
主 页:
校验码:
看不清,换一张
登录