动力男孩flash乐园

不抛弃、不放弃,梦想要迂回去实现~!
  • 首页
  • 我的座右铭
  • 我的作品
  • 留言聊天室
  • 动力男孩的诞生

存档

作者存档
219次浏览↓

浅谈工具的意义

2010年5月20日 powerboy 没有评论

声明:以下文章是本人在学习过程中总结的一些个人经验,如果需要复制,请务必注明出处:http://www.p-boy.cn

  工具,是一把利器,做事情需要讲究方式方法,如果做事情时选择了合适的工具,可以让你的做事效率事半功倍。工具,可以是有形的也可以是无形的。但是,什么样的工具适合自己,怎样来选择适合自己的工具呢,这是每个人都需要努力去研究的话题。
  不管是哪家公司,都可能遇到过这种情况:在同一个项目里,每个部门的职能各不相同,有时候会发现项目推进的很困难,部门之间会相互推卸责任、扯皮,尤其越大的公司表现的越明显。究其原因,很多人可能会说这样的话,例如:项目需求不明确、这个问题应该XXX来负责、这个问题我以前都讲过等等之类的话。其实我们回过头来仔细想想,这些部门的领导们是否以身作则了呢?正有一句话所谓:有什么样的领导,就有什么样的团队。这的确是有根据的,领导就相当于航海中的信号灯,当船只在遇到大雾而迷路的时候,它能够指明方向,让大家跳出现有的困境而向前看。一旦这个时候没有了信号灯或者信号灯给错了方向,那么整只船队也就跟着一起陷进去了。所以对于领导的团队管理,是一定要讲究方法的。如果领导能够观察到每个成员的工作方式,也许就会用自己的经验去帮助他们改进;如果能够跟踪到每个成员的项目进度,也许就会更好的安排工作周期;如果能够关注一下其他团队目前的现状和所需要协助的地方,也许就会避免团队之间走更多的弯路。
但是假设上面的条件都满足就可以了吗,显然这里面还有一个执行力的问题,如果这一条不满足,纵使你有再多的管理经验也无济于事。既然我们谈到了执行力,就不得不谈“威信”二字,你可以有“威”,但是没有“信”的话,恐怕“威”也很难持久。如果想要每个成员都“信”你,必然要经历一个长期而持续的过程,而这个过程,恰恰也是对领导的一个考验。

  备注:
  有形的工具:各种软件(例如Redmine、Project等等)。
  无形的工具:沟通技巧、解决问题的方式、意识(例如遇到问题,知道需要向谁寻求协助)

分类: 心情驿站 标签: 心情
169次浏览↓

“小小便利店”终于上线啦

2010年5月20日 powerboy 没有评论

  自从新换了工作之后,就一直没怎么再更新博客了,每天的时间都安排的满满的,今天借着推出这款小游戏的机会,赶紧踩个脚印。本来计划这款游戏半个月完成,但由于平时的工作太忙,导致我一周只有一天的开发时间,这款游戏在经历了2个多月之后才浮出水面,现在还仍然在完善中。
  目前正在跟人人网合作,在此感谢跟我一起奋斗的兄弟们,没有大家的共同努力,这款游戏是永远也不会有成功的基因的。
  游戏地址:http://page.renren.com/littlecvs/index

分类: 心情驿站, 我的新闻 标签: flash, 心情, 新闻
426次浏览↓

禁止按tab时焦点从flash切换到地址栏

2010年2月4日 powerboy 没有评论

找了好久,终于在一个国外站点看到了解决方法:

1
2
3
4
5
6
7
8
9
<script type="text/javascript">
document.onkeydown=function(){
	if(event.keyCode==9){
		event.keyCode=0;   
		event.returnValue=false;
		return false;
	}
};
</script>
分类: 我收集的flash 9.0资料 标签: as3
564次浏览↓

隐藏Flex滚动条的箭头和滑竿

2009年12月28日 powerboy 没有评论
1
2
3
4
5
.myCustomScrollBarStyleName {
	downArrowSkin:		ClassReference(null);
	upArrowSkin:		ClassReference(null);
	thumbSkin:		ClassReference(null);
}
分类: flex学习笔记 标签: flex
603次浏览↓

为asdoc设定example

2009年12月16日 powerboy 2 条评论

  最近在学习用asdoc生成文档,我们在使用官方API文档的时候,都能看到有些类的底部会有关于这个类是如何使用的例子,他是如何做到的呢,其实用的就是这个指令:@includeExample xxx/example.as,在它后面跟的是例子的路径,但是有一点,我们不能因为想要写个小例子,就把它放在跟类相同的路径下吧,这会非常糟糕的,我们更希望把例子集中在一个文件夹下统一管理,有什么好办法吗,答案是肯定的。我们需要在编译语句后面加上-examples-path [盘符]:\[路径],它指的就是我们存放例子的路径,但是一定要记住,存放example的路径最好跟类文件的路径是一样的,这样管理起来更方便。比如我把框架放在d盘名为powerboy的目录下,框架里有个cn.pboy.control.Button的类,它的路径看起来像这样:d:\powerboy\cn\pboy\control\Button.as,现在我要对这个类添加例子,我想把例子统一放在d盘的examples文件夹下统一管理,那么路径应该是这样的:d:\examples\cn\pboy\control\ButtonExample.as,然后在命令行工具下把当前盘符设为d:\powerboy>,通过以下命名就可以编译了:asdoc -source-path . -doc-sources . -examples-path d:\examples

分类: actionscript3.0学习笔记, flash教程 标签: as3, 教程
738次浏览↓

一个测试睡眠的例子

2009年11月27日 powerboy 31 条评论

  这里给出一个小例子,方便大家看到是否设置睡眠的区别。右上角的5个按钮代表重力方向,他们都是用向量模拟的,中间的按钮“无”代表失重状态。关于睡眠设置,默认是禁止睡眠,点击右侧按钮可以切换状态。通过观察你可以发现,当所有小球停止运动的时候,如果是禁止睡眠,当你改变重力方向的时候它们仍然可以运动,如果是允许睡眠的话,你会发现他们确实睡的跟死猪一样,一动不动。

Get Adobe Flash player

  需要看源码的朋友,请在下方留言,留下你的邮箱地址,我会尽快回复你的。

分类: Box2D, 我的AS3实验室 标签: as3, flash
1,539次浏览↓

Box2D——入门教程

2009年11月27日 powerboy 3 条评论

声明:以下文章是本人在学习过程中总结的一些个人经验,如果需要复制,请务必注明出处:http://www.p-boy.cn

  现在网上关于as3的物理引擎真是不少,比较之后发现,在开源引擎当中Box2D算是比较不错的了,只可惜他的结构比较复杂,而且国内网站关于Box2D方面的教程真是少的可怜。因为我知道这个最早是c++上面的2D引擎,所以我找到了http://www.box2d.org/manual.html网址,经过几天的研究,总算是入门了,下面我会系统的针对官网给出的HelloWorld程序进行讲解,把个人心得分享给大家(鼓掌)!

  这个引擎是先从创建一个世界对象开始的,他负责管理内部一切对象的内存和模拟过程。要创建一个世界中的对象,首先我们需要为世界定义边界区域,Box2D针对区域内的所有对象进行模拟碰撞,区域的大小并不重要,但更适合的区域将提高程序性能,一般来讲这个区域设置的要比演示区域更大一些,因为一旦对象在运动时到达了边界,它就会被“冻结”并停止一切模拟活动。

var worldAABB:b2AABB = new b2AABB();
worldAABB.lowerBound.Set(-100,-100);//左边界、上边界
worldAABB.upperBound.Set(100,100);//右边界、下边界

  下面我们要为这个世界设置重力了,就是下面这段代码,其实这里面的重力是用向量b2Vec2(x,y);来表示的,x代表水平运动,正数向右,负数向左,y代表垂直运动,正数向下,负数向上。同时我们需要再定义一个布尔型参数(我命名为doSleep),来表示是否允许睡眠,睡眠所代表的含义网上也没有一个明确的介绍,这里我简要讲解一下。因为你在这个世界中生成的一切对象,他们的模拟效果都是实时计算出来的,当doSleep=false的时候,即使物体停止了运动,计算机还是在不停的进行着运算,其实这是完全不必要的,所以一般都设为true,这样当物体停止之后就不会进行无谓的cpu消耗了。

var gravity:b2Vec2 = new b2Vec2(0,10);
var doSleep:Boolean = true;

  以上参数都准备好了,我们可以将它们传入b2World对象中并将其实例化,这样一个物理引擎的模拟区域就做好了。

var world:b2World = new b2World(worldAABB,gravity,doSleep);

  让我们开始在其中加入你想要模拟的对象吧。本来在那个英文网站中给出的是5个步骤,但是我感觉还少点什么,所以我又加了一条:
第一步、创建并定义刚体位置。这里我做一下名词解释,在任何力的作用下,体积和形状都不发生改变的物体叫做“刚体”;

var ground:b2BodyDef = new b2BodyDef();
ground.position.Set(10, 12);//这里的位置也是用向量定义的

2、给刚体定义皮肤(注意这里的皮肤并不具备物理引擎的属性,因此才有了第四步);

bodyDef.userData = _mc;//我们自己绘制的图形
addChild(bodyDef.userData);

3、用世界对象添加刚体实例,需要注意的是世界对象里并没有保存body定义的引用;

var body:b2Body = world.CreateBody(bodyDef);

4、根据皮肤形状创建模拟图形类:摩擦力、密度、弹力等等;当密度为0的时候,物体是不会动的,相当于障碍物。摩擦力和弹力取值范围是0~1,形状的区域是由SetAsBox定义的,因为模拟图形和刚体都要求以中心点为注册点,因此这里的宽和高的值都是一半,同时需要注意,这里数值单位并不是像素,而是米,1米=30像素,大家在传值的时候可别忘记换算哦。

var box:b2PolygonDef = new b2PolygonDef();//创建多边形
box.density = _density;
box.friction = _friction;
box.restitution = _restitution;
box.SetAsBox(_halfWidth , _halfHeight);

5、在刚体上添加模拟图形实例;

body.CreateShape(box);

6、根据刚体的密度和面积计算出质量,密度*面积=质量。

body.SetMassFromShapes();

  这里有两个重要的参数需要我们自己定义一下。一个是迭代次数,这里我定义为m_iterations,建议迭代次数为10,这时一个比较合理的值,使用较少的迭代可以提高性能,但模拟质量受到影响。同样,使用更多的迭代性能有所下降,但提高了你的模拟质量。另外一个参数是游戏的刷新频率,我定义为m_timeStep,根据英文教程上记载,它采用的是1/60秒刷新一次,但因为它的平台是c++,性能比AVM2虚拟机高出数倍,完全可以这么做,而在flash中我们一般设置成1/30就可以了。

var m_iterations:Number = 10;
var m_timeStep:Number = 1 / 30;

  现在一切都准备好了,我们要让所有对象模拟运动。其实他也是通过侦听帧频率而不断刷新实现的,把上面那两个参数传入世界对象的Step方法中即可,同时我们需要遍历世界中的一切对象,并对每个对象的坐标和角度进行更新。

addEventListener(Event.ENTER_FRAME, Update, false, 0, true);
function Update(e:Event):void
{
	world.Step(m_timeStep, m_iterations);
	for (var bb:b2Body=world.m_bodyList; bb; bb=bb.m_next)
	{
		if (bb.m_userData is Sprite)
		{
			bb.m_userData.x=bb.GetPosition().x * 30;//这里获取的变量单位是米,乘以30转换成像素单位
			bb.m_userData.y=bb.GetPosition().y * 30;
			bb.m_userData.rotation=bb.GetAngle() * (180 / Math.PI);
		}
	}
}

  好了,现在相信大家已经对Box2D有了一定了解,赶快尝试制作一些效果吧。

  本文出自动力男孩博客:http://www.p-boy.cn/?p=473

分类: Box2D, flash教程 标签: as3, 教程
932次浏览↓

Box2D——shoot Demo

2009年11月27日 powerboy 29 条评论

  最近研究Box2D引擎,做了一个Demo,这个引擎结构还是比较复杂的,不过入门之后学起来就没一开始那么费力了。

Get Adobe Flash player

  需要看源码的朋友,请在下方留言,留下你的邮箱地址,我会尽快回复你的。

分类: Box2D, 我的AS3实验室 标签: as3, flash
642次浏览↓

一个由单例模式引发的问题

2009年11月14日 powerboy 4 条评论

  最近我用一个单例模式类LoginNetManager对socket进行了封装,里面有一个send方法,专门用户向服务器发送事件,写法如下:

1
2
	LoginNetManager.getInstance().addEventListener(NetEvent.SOCKET_ERROR,onConnectError);	
	LoginNetManager.getInstance().send(NetEvent.LS_MSG_ADDCONNECT);

这个就是向服务器发送其中一个事件信息的语句,但奇怪的问题出现了,我在flashIDE本地进行测试的时候,一切正常,但是当我放到虚拟路径下测试的时候,它就会提示说“无法找到空对象引用的属性或方法”,我一看,问题就出在第二行那个send的方法,难道说类还没有完全实例化的时候,程序就继续向下运行了?但是这里也不存在异步执行啊,无奈之下,我修改成一个延迟语句:

1
2
	LoginNetManager.getInstance().addEventListener(NetEvent.SOCKET_ERROR,onConnectError);
	setTimeout(getSocket,500);

我在getSocket方法中调用那条语句,问题就都解决了。这确实很蹊跷,我承认flash在本地运行与在网页中运行的时候,执行的是不同的flash player程序,但是从这个例子来讲,不同flash player之间的差异性还是显而易见的。

分类: actionscript3.0学习笔记 标签: as3
624次浏览↓

给图像加水印

2009年10月30日 powerboy 6 条评论

  今天应朋友需求,写了一个简单的图像加水印小软件,这个姑且叫做1.0版本吧,以后还会陆续添加更多功能。

Get Adobe Flash player

分类: air学习笔记 标签: air, as3
下一页
RSS 订阅
  • Google
  • 有道
  • 鲜果
  • 抓虾
  • My Yahoo!
  • newsgator
  • Bloglines
  • 哪吒

分类列表

  • actionscript3.0学习笔记 (16)
  • air学习笔记 (6)
  • alternativa3D (3)
  • AS2疑难杂症 (1)
  • Box2D (3)
  • flash教程 (5)
  • flex学习笔记 (3)
  • 心情驿站 (24)
  • 我收集的flash 8.0资料 (3)
  • 我收集的flash 9.0资料 (3)
  • 我收集的文章 (21)
  • 我的AS2实验室 (4)
  • 我的AS3实验室 (9)
  • 我的新闻 (17)
  • 我的相册 (6)
  • 我翻译的英文资料 (7)
  • 日语学习 (2)
  • 英语学习 (2)

最近发表

  • 浅谈工具的意义
  • “小小便利店”终于上线啦
  • 禁止按tab时焦点从flash切换到地址栏
  • 隐藏Flex滚动条的箭头和滑竿
  • 为asdoc设定example
  • 一个测试睡眠的例子
  • Box2D——入门教程
  • Box2D——shoot Demo
  • 一个由单例模式引发的问题
  • 给图像加水印

最近评论

  • 空谷的回响 发表于 一个测试睡眠的例子
    我的QQ:373131285,希... »
  • manyu 发表于 一个测试睡眠的例子
    请给我发一份吧~我也在学习~谢谢... »
  • Brooks 发表于 mp3播放器 beta2.0(开源)
    好像不能下啊,楼主给我发一份吧,... »
  • velika 发表于 Box2D——shoot Demo
    刚开始学Box2d。发一份源码来... »
  • velika 发表于 一个测试睡眠的例子
    我也想要一份源码,谢谢15337... »
  • velika 发表于 一个测试睡眠的例子
    正在学BOX2D,楼主帮了我大忙... »
  • sky 发表于 一个测试睡眠的例子
    房主,你太强了,非常值得我学习,... »
  • GGGG 发表于 Box2D——shoot Demo
    zswrhua@163.com ... »
  • kirahua 发表于 Box2D——shoot Demo
    我也正在学习用BOX2D 做游戏... »
  • sans 发表于 Box2D——shoot Demo
    楼主很厉害哦,正在学box2d呢... »
  • 下一页 »

存档

  • 2010年五月 (2)
  • 2010年二月 (1)
  • 2009年十二月 (2)
  • 2009年十一月 (4)
  • 2009年十月 (1)
  • 2009年九月 (2)
  • 2009年八月 (2)
  • 2009年七月 (4)
  • 2009年五月 (3)
  • 2009年三月 (3)
  • 2009年二月 (2)
  • 2009年一月 (8)
  • 2008年十二月 (10)
  • 2008年十一月 (7)
  • 2008年十月 (4)
  • 2008年九月 (7)
  • 2008年八月 (8)
  • 2008年七月 (4)
  • 2008年六月 (5)
  • 2008年五月 (11)
  • 2008年四月 (14)
  • 2008年三月 (8)
  • 2008年二月 (12)

友情链接

  • alan新浪博客
  • sunbright
  • 云风Blog
  • 嘎嘎在东京
  • 张毅君/工长君
  • 永明则名
  • 海峡IT网
  • 闪界
  • 雷晟的新浪博客
  • 鼠标炸弹
置顶 WordPress
版权所有 © 2008-2010 动力男孩flash乐园 京ICP备09048608号
主题由 NeoEase 提供, 通过 XHTML 1.1 和 CSS 3 验证.Powered by WordPress