极度鹤小居

2011年06月28日

博客搬家了

类归于: 小憩驿站 — 极度鹤 @ 19:07

博客搬家了,
内容是导成功了,
只是页面不太好看哦!
将就将就吧,至少免了那备案之苦!

2009年08月10日

公开我自己常用的AS3开发类包(jdhcn类包)

类归于: AS3.0 — 极度鹤 @ 10:08

jdhcn类包是自己在AS3开发过程中常用的一些类,有的是自己编写,有的是网络收集整理,使用此类包能大大提高开发效率,不断完善和整理中,不定期更新中。

一、全局静态类(global文件夹里):
最常用的Global,UiGlobal,GlobalJS,Cookie,ArrayGlobal等等, 具体作用和用法打开此类均有说明;

二、载入外部文件类包(loadData文件夹里):
BatchLoad类可以实现批量载入不同类型的文件(SWF/JPG/FLV/MP3/XML/TXT);
LoadData类实现单个载入不同类型文件的文件(功能等同BatchLoad只载入单个文件);
SWFLoad,FLVLoad,MP3Load,XMLLoad,TXTLoad等分另为载入单个不同类型的外部数据文件;

三、数据提交类包(submitData文件夹里):
http数据提交方式: SubmitData(提交普通的数据), SubmitBitmap(提交带位图的数据), SubmitDataFile(提交带文件的数据);
remoting数据提交方式:暂时只写了个基类,事后抽时间再完善一下;
Socket数据提交:暂时没编写;

四、jdhMVC开发框架(jdhMVC文件夹里):
一个简单的方便数据广播小框架;

五、MiniSite开发框架,即flash网站开发框架(minisite文件夹里):
是一个在jdhcn类包环境下并且基于jdhMVC开发框架的flash网站开发框架;

六、flash cs3轻量级组件(component文件夹里):
模仿flash cs3里的各种组件实现的轻量级组件,适合用在对swf文件大小限制比较严格的场合,否则可能就有点像鸡肋的感觉了:)

其他文件夹里的是不常用或是不够完善有待整理

点击下载此类包

2009年07月17日

jdhcn之minisite开发框架(flash web开发框架)

类归于: AS3.0 — 极度鹤 @ 09:44

jdhMVC框架实现了事件广播来达到各频道之间的通信, 而各频道采用了xml配置方式来追加各频道, 注意本框架为了更好的灵活性并没有自动生成导航菜单(此功能以后会集成进来成为一个可选功能).

先看demo

先说一下结构:
1, 首先有一个主swf文件(main.swf), 此文件中包含一个存放频道的MC和一个存放导航菜单的MC, 这两个文件都是由外部导入, 所以应该在主文件中做有加载进度条, 框架中已经有此进度实现, 只需要在fla文件中修改外观就OK了.

2, 配置config.xml文件, 相应的配置后面说明.

3, 把各个频道的swf文件按config.xml文件的配置相应处理好就OK.

4, 在开发过程中需要广播自己事件,方法请参考jdhMVC框架的使用方法

附加说明:
由于本框架使用了jdhMVC框架和jdhcn类包, 源代码还是进一步整理才方便发布, 如果有朋友感兴趣急需可以联系本人.

xml的配置说明:

2009年07月14日

一个新的as3开发框架:jdhMVC框架

类归于: AS3.0 — 极度鹤 @ 11:18

2009年05月19日

Flash与后台数据交互方法总结

类归于: AS3.0 — 极度鹤 @ 07:08

Flash与后台数据交互方法总结

P.S
最近有一些网友总是询问flash与后台数据交互的问题,因此我就做了一些总结和整理,也想方便大家了!
目前据我所知,Flash与后台数据交互共有下列几种方法(如果你觉得不全,你可告知一下,我会添加上去了):
1.
LoadVars(XML)
2.Flash Remoting
3.Webservice
4.XMLSocket


一.LoadVars篇

我之所以把XML也放在这里说,是因为XML和LoadVars数据交互的方式大体相同,就是传递时的数据内容有点不一样而已!
我现在列出在开发过程最常用的”用户密码验证”实例,加以说明!

//=======================================================;
// Flash代码;
//=======================================================;
//定义LoadVars对象;
var data_lv = new LoadVars();
//提交的用户名变量和参数值;
data_lv.username = “kinglong”;
//提交的密码变量和参数值;
data_lv.password = “king”;
//提交后返回结果;
data_lv.onLoad = function(success){
//success,数据提交是否成功;
//这个只是表示数据传输是否成功,并不是用户验证的结果;
if(success){
trace(“数据提交成功!”);
//result也是用户验证返回的实际结果!
if(this.result==”true”){
trace(“yes”);
}else{
trace(“no”);
}
}else{
trace(“数据提交失败!”);
}
}
//数据提交方法调用;
//第一参数就是提交的页面地址;
//第二参数就是返回结果对象(只要是LoadVars对象就可以了);
//第三参数就是提交方式(这个和html中form表单类似,分为”post”和”get”两种方式)
data_lv.sendAndLoad(“http://www.klstudio.com/save.asp”,data_lv,”post”);

//=======================================================;
//后台服务端页面处理及返回内容;
//=======================================================;
//接收flash提交过来的变量和接收一个页面提交过来的变量一致的;
Request(“username”) 就是flash端username变量传过来的值”kinglong”;
Request(“password”) 就是flash端password变量传过来的值”kinglong”;
….数据库验证…..
//如果用户验证通过
&result=true
//如果用户验证失败
&result=false
//整个页面返回内容就是上面那一行内容,&result对应用着flash端的result变量;
//如果是多个返回值的话,就是&result=xxx&result1=xxx这种形式就可以了;
如有不清楚的地方,你可查看flash帮助文档!
至于XML的方式,请对应地查看flash帮助文档就可以了!

LoadVars方式的优点:
1.flash代码实现起来简单,方便.
2.服务端接收页面和接收一个表单过来的数据一样处理,不需要专门的技术,所有服务端程序都可以实现!

LoadVars方式的缺点:
1.传递的变量不宜过多.
2.变量传递的值不宜过长.
3.变量传递值只能使用”字符串″这一种数据类型,数据类型单一.
4.数据返回值当中不能有”&”字符,因此比较复杂的返回值都需进行URL编码处理.

二、Flash Remoting
Flash Remoting这种数据接口是四个之中效率最高的!
其优点:
1.支持数据类型比较多(
Converting from application server data types to ActionScript);
2.传递数据量比较大;
3.运行效率是现有几个当中最高的;
4.对各种后台的支持也比较好;
5.其还有调试模块(NetConnection Debugger)

其缺点:
1.需要flash端装
Flash Remoting MX Components(这个是免费提供的);
2.需要后台服务端装相应版本的Flash Remoting模块才可以使用,MM提供的模块有j2ee和.net两个版本是要收费的,好在网上还有两个开源的(
OpenAMF,AMFPHP);
3.好像Remoting对虚拟主机的支持不太好(可以去google搜索一下,有没有解决方法).

================================================================
Flash端代码说明:(我这里用as1.0版本为例,其他版本到MM站查找)
================================================================
//加载Remoting Component代码,这个是必须的;
#include “NetServices.as”
//加载Remoting 调试模块代码,这个是可选择的,用NetConnection Debugger查看调试信息;
#include “NetDebug.as”
if (inited == null){
inited = true;
//设置默认网关;
NetServices.setDefaultGatewayUrl(“
http://localhost:8500/flashservices/gateway“);
//建立网关连接;
gateway_conn = NetServices.createGatewayConnection();
//获取一个服务;
myService = gateway_conn.getService(“myservice”, this);
}

//定义调用方法的函数;
function getString(name){
//调用Remoting的getString方法;
myService.getString(name);
}
//定义返回结果的函数;
function getString_Result(result){
//result就为返回的结果;
trace(result);
}
//定义返回状态的函数,此为可选的;
function getString_Status(error){
trace(“getString_Status”);
trace(error.code);
trace(error.description);
trace(error.details);
}

//调用函数;
getString(“kinglong”);

================================================================
服务端方法定义(我这里以Coldfusion Component为例,其他版本请参考相应的资料)
================================================================

另附上Flash Remoting的在线帮助文件(Flash Remoting LiveDocs),MM网站上的Remoting相关的资料.

三、WebService
个人觉得WebService的数据访问速度,仅次于Remoting,但WebService是一种通用型的接口,一般服务端技术都支持的!
WebService的优点
1.WebService的接口支持比较广泛(
JavaASP.NetPHPColdfusion-我下面举例用);
2.WebService是一个通用型的接口,所以服务端写的接口,不局限于Flash使用,其他程序也可以调用,”一举两得”!
3.WebService和Remoting一样,支持多种数据类型!
4.今天还发现FMS除了支持Remoting接口,也支持WebService接口了:)
WebService的缺点
Flash客户端到是没有什么问题,Flash的开发工具就自带了(WebServiceConnector 组件),但服务端虽说大多都支持这个接口技术,但除了Coldfusion生成WebService方便外,其他的实现都挺复杂的!

//=======================================;
// Flash客户端代码;
// 对于代码不是很熟悉的可以直接使用WebServiceConnector 组件,进行设置设置就可以了。
// 我这里主要是写用代码来调用WebService方法。
// 当然这个前提是你要把WebServiceConnector 组件先放到库里,否则类就无法引用了。
//=======================================;
stop();
//引用WebService类;
import mx.services.WebService;
//定义WebService的路径;
var ws_url:String =
http://localhost:8500/klstudio/myservice.cfc?wsdl;
//定义WebService对象;
var ws:WebService = new WebService(ws_url);
//调用WebService方法;
var callObject = ws.getString(“kinglong”);
//设置返回结果对象;
callObject.onResult = function(result){
trace(“result:”+result);
}
//如果调用错误返回信息(这个是可选的);
callObject.onFault = function(fault){
trace(“fault:”+fault.faultstring);
}

注意:如果返回结果是一个数据集的话,那每个字段名都要用大写,不管你的服务端是否大写!

================================================================
服务端方法定义(我这里仍以Coldfusion Component为例,其他版本请参考上面提供的连接)
================================================================




调用的时候,只要在cfc路径后面加“?wsdl”就可以了,方便吧! :)

四、XMLSocket

这是LoadVars(XML)Flash RemotingWebserviceXMLSocket四种方法整理的最后一篇,也让大家久等了

2011年06月30日

AS3游戏引擎PushButton研究讨论

类归于: AS3.0 — 极度鹤 @ 18:49

之前研究了一下 FFilmation,感觉地图不太好用,最近想研究一下PushButton引擎,发现除了官网的资料其他地方都没有什么介绍的。

所以就建了一个qq群,欢迎有兴趣的朋友加入一起研究研究,讨论讨论~~

QQ群号:59240495

2011年05月24日

要悲剧了,备案要重新备了

类归于: 未分类 — 极度鹤 @ 03:24


不仅要重新备,还要蓝底照片,更郁闷的是电子档还不行,非得从邮局寄书面资料过去。

看来网站也可以关了,阿门

看来要say拜拜了,阿门]]>

2010年11月11日

as3位运算

类归于: AS3.0 — 极度鹤 @ 10:19

//将一个值向左侧移动一位与这个值乘以 2 等效 。浮点数通过舍去小数点后面的所有位来转换为整数。
大约快了300%

x = x * 2;
x = x * 64;
//相当于:
x = x << 1;
x = x << 6;

右位移几就相当于除以2的几次方(Right bit shifting to divide by any power of two)
//将一个值右移一位等效于将它除以 2 并舍去余数。浮点数通过舍去小数点后面的所有位来转换为整数。
大约快了350%

x = x / 2;
x = x / 64;
//相当于:
x = x >> 1;
x = x >> 6;

Number 到 integer(整数)转换

在AS3中使用int(x)快了600% 。尽管如此位操作版本在AS2中工作的更好

x = int(1.232)
//相当于:
x = 1.232 >> 0;

提取颜色组成成分

不完全是个技巧,是正常的方法 (Not really a trick, but the regular way of extracting values using bit masking and shifting.)

//24bit
var color:uint = 0×336699;
var r:uint = color >> 16;
var g:uint = color >> 8 & 0xFF;
var b:uint = color & 0xFF;
//32bit
var color:uint = 0xff336699;
var a:uint = color >>> 24;
var r:uint = color >>> 16 & 0xFF;
var g:uint = color >>> 8 & 0xFF;
var b:uint = color & 0xFF;

合并颜色组成成分

替换值到正确位置并组合他们 (‘Shift up’ the values into the correct position and combine them.)

//24bit
var r:uint = 0×33;
var g:uint = 0×66;
var b:uint = 0×99;
var color:uint = r << 16 | g << 8 | b;
//32bit
var a:uint = 0xff;
var r:uint = 0×33;
var g:uint = 0×66;
var b:uint = 0×99;
var color:uint = a << 24 | r << 16 | g << 8 | b;

使用异或运算交换整数而不需要用临时变量

很可爱的技巧, 在本页顶端的链接里有详细的解释 ,这里快了 20%

var t:int = a;
a = b;
b = t;
//相当于:
a ^= b;
b ^= a;
a ^= b;

自增/自减(Increment/decrement)

这个比以前的慢不少,但却是个模糊你代码的好方法;-)

i = -~i; // i++
i = ~-i; // i–

取反(Sign flipping using NOT or XOR)

另人奇怪的是这个居然快了300%!

i = -i;
//相当于:
i = ~i + 1;
//或者
i = (i ^ -1) + 1;

使用bitwise AND快速取模 (Fast modulo operation using bitwise AND)

如果除数是2的次方,取模操作可以这样做:

模数= 分子 & (除数 – 1);

这里大约快了600%

x = 131 % 4;
//相当于:
x = 131 & (4 – 1);

检查是否为偶数(Check if an integer is even/uneven using bitwise AND)

这里快了 600%

isEven = (i % 2) == 0;
//相当于:
isEven = (i & 1) == 0;

绝对值

忘记 Math.abs()吧 (Forget Math.abs() for time critical code.)

version 1 比 Math.abs() 快了2500% ,version 2 居然比 version 1 又快了20% !

//version 1
i = x < 0 ? -x : x;
//version 2
i = (x ^ (x >> 31)) – (x >> 31);
]]>

2010年06月23日

AS3游戏引擎FFilmation研究讨论

类归于: AS3.0 — 极度鹤 @ 07:28


官网地址:http://www.ffilmation.org
官方基础教程:http://www.ffilmation.org/website/documentation/design-basics/
API:http://www.ffilmation.org/website/api/
demo:http://www.ffilmation.org/website/demos/example-1/

2010年01月8日

as3游戏地图编辑器

类归于: AS3.0 — 极度鹤 @ 06:42

这是我对游戏地图编辑器的初探, 目前只实现了90度视角的编辑, 采用的是xml文件来配置地图素材来源(只是初探过程和实现方法,所以就选择了简单的, 其中包括了地形层(背景图),建筑层,阻挡层等三种数据的生成, 输出来的数据格式也是我自己定义的, 这就当是一个练习与演示拿来晒晒吧,真正要使用的话还需要修改与扩展. (注意树形菜单需要全部展开能正确获取地图素材, 没有把aswing的JTree搞明白,真遗憾!)

效果图预览:

点击看演示效果

2009年12月2日

经典笑话:最新搞笑求婚方式

类归于: 小憩驿站 — 极度鹤 @ 10:30

经典笑话:最新搞笑求婚方式

1.最佳露骨奖:让我们合法地结合吧!

早前文章 »

WordPress 所驱动