博客公告(点击显示/隐藏)| 今日心情:神学
2010-07-30 21:09:43
小S吧今天你来了吗?更新速度:每周2-3篇以上!在俺博客看到有用的东西,学习了之后,记得回访带点人气哦 ^_^ 嘿嘿!
欢迎跟俺交换友情链接啊。。留言,直接QQ等联系我都行啊
转载本博客文章请注明:来源小S吧——sunbright博客,链接地址:http://www.xiaos8.com
2010
7-2
前言
在2010年5月30日的Flash开发者交流会上,陈静(iiley:AsWing框架的作者)所讲的《FLASH 独立游戏 - 现状分析与发展思考》让很多Flash开发者了解到可以通过类似mochimedia这样的网站,用自己制作的Flash小游戏来赚钱。如今麻球网 http://zh-cn.mochimedia.com (也就是Mochi中国)上线了,这也意味着国内Flash独立游戏开发走向成熟,将形成一条成熟的产业链!
因为Flash的开发效率高,小巧,平台普及率,且易传播,所以Flash独立游戏有着得天独厚的优势。 Mochi Media在国外 Mochi Media总部位于旧金山,目前拥有1.4亿月度活跃用户,发布15,000多款网页游戏,并与近40,000家发行商网站建立了渠道合作关系,已经建立起包括游戏玩家、开发商、广告商和发行商在内的庞大网络和强大品牌。Mochi Media通过开放的平台向游戏开发者提供各种开发产品和服务,帮助他们进行用户数据跟踪、产品多渠道分销等,并通过广告和虚拟道具交易实现盈利。 被盛大收购的Mochi Media——麻球网 引入新商业模式,帮助国内开发者获利。开放并且易用的,自助式的平台。只需复制粘帖一小段代码,就能在游戏中实现广告播放,道具销售,积分排行,版本实时更新等功能。并且,开发者能够在麻球网提供的后台页面上,清楚地看到自己的flash游戏的点击,播放和收入情况。庞大的用户群及游戏发布渠道,麻球网称拥有2亿全球活跃用户及超过40000个游戏发布渠道。全方位的技术支持。麻球网依托盛大的技术力量,给予优秀的开发者以帮助和提供相应的技术支持。例如,对国内开发者广泛关注的如何完成API广告内置和其他一些技术难题,都会通过麻球网提供详尽的解答和指导。为优秀开发者提供资金帮助。麻球网设有专门的基金计划,针对优秀的作品和开发者,用于提升这些开发者的竞争力。提供最新Flash技术研究成果。 这意味着什么? 以前国内的Flash独立游戏开发者,都是通过国外的商业模式去赚钱,这样及其不方便。现在麻球网上线了,一条成熟的商业模式被引入,国内的开发者只需要通过麻球网,就可以很轻松获得盈利,得到麻球网许多的支持: 1、广告API:您可以在您的游戏内嵌入广告,当广告播放时您就可以获得收入。
2、分析API:无论您的Flash游戏被发布到了哪里,您都可以追踪到相关信息。
3、钱币API:在您的游戏中启用虚拟货币,向您的玩家直接销售游戏道具。
4、游戏发行:通过麻球网的平台,将您的Flash游戏发行到数万个网站上。
5、积分API:轻松给您的游戏添加排行榜,积分等功能,并将信息发布到各个站点上。
6、在线更新:实时更新您的Flash游戏并对它进行加密保护。
7、社交API:给你的Flash游戏加入社交功能,和SNS社区完美结合在一起。
8、开发者基金:如果您有好的项目,或者仅仅是一个好的想法,还可以联系麻球网,他们会提供帮助。 开发者的角度 纵览麻球网的好处,这儿我也为大家分析了一些对于平常开发者不错的方面: 1、只需添加一行代码在每个游戏中赚钱
您可以从互联网的任何一个站点获得您游戏中每一次广告播放产生的收入, 只需一条代码即可!
点评:嵌入简单,一条代码搞定赚钱! 2、监控游戏的传播
监控您的游戏传播的情况, 如哪些站点引入了您的游戏,在这些站点上您的游戏的访问次数等。
点评:以前Flash小游戏做好了放到网络上面,立即就被大量散播出去,而开发者根本无法知道小游戏传播到哪了,该功能就解决了这个问题。 3、游戏收益
Mochi 币 API 能够让您直接向玩家出售虚拟物品,例如通关、装备、特殊武器以及秘籍等。
点评:目前的网络游戏,大部分的赚钱模式都是游戏完全免费,道具收费,而且这种中国独有的收费模式,开始走红全世界,并且被多家知名国际企业采用。 4、将您的游戏发送到数万家网站
Mochi向数万家合作伙伴发布商发行您的游戏,包括一些最大型的互联网站点。
点评:普通开发者即便做好了一个非常棒的游戏,但因为没有发行途径,而最终不能让广大用户玩到如此杰作。
2010
6-10
一位正在初学C++的同事,突然问我一个问题,说用打印函数,只用for循环,怎么输出一个菱形?
想起来这是以前学编程时,非常基础的一个问题
本来以为很简单,于是随便想了一下,发现还真没想象那么简单额
于是乎,努力仔细的想想,于是下面的答案就出来了
当然是Flash写的:
我这个用了3个for循环,不知道有没有用的for循环更少的方法?
(注意哦,只能用for循环和基本的运算)
想起来这是以前学编程时,非常基础的一个问题
本来以为很简单,于是随便想了一下,发现还真没想象那么简单额
于是乎,努力仔细的想想,于是下面的答案就出来了
当然是Flash写的:
我这个用了3个for循环,不知道有没有用的for循环更少的方法?
(注意哦,只能用for循环和基本的运算)
var k:int, result:String = "", sum:int = 7;
var s:int = Math.abs(- sum / 2);
for(var i:int = 0; i < sum; i ++){
var n:int = Math.abs(s - i);
var t:int = sum - n * 2;
for(k = 0; k < n; k ++){
result += " ";
}
for(k = 0; k < t; k ++){
result += "*";
}
result += "\n";
}
trace(result);输出结果:
*
***
*****
*******
*****
***
*
var s:int = Math.abs(- sum / 2);
for(var i:int = 0; i < sum; i ++){
var n:int = Math.abs(s - i);
var t:int = sum - n * 2;
for(k = 0; k < n; k ++){
result += " ";
}
for(k = 0; k < t; k ++){
result += "*";
}
result += "\n";
}
trace(result);输出结果:
*
***
*****
*******
*****
***
*
2010
6-8
鼠标的滚轮不灵活了,自己拆开看了一下
发现是橡皮圈和滚轮太松了,摩擦力不够,致使滚动滚轮时,滚动条没任何反应
于是乎就想办法增加橡皮圈和滚轮之间的摩擦力
刚开始用纸在橡皮圈和滚轮之间再固定一层增加摩擦力,弄好后效果倒是达到了,但是橡皮圈因此鼓了起来,致使滚动时,老是被卡住
突然想起个把月买过502胶,把橡皮圈和滚轮之间涂上一层502胶,少许时间后,效果达到了
于是在将鼠标组装起来,试了一下效果,嘿!还真不错!
又省了几十块钱换鼠标了,哇哈哈!
发现是橡皮圈和滚轮太松了,摩擦力不够,致使滚动滚轮时,滚动条没任何反应
于是乎就想办法增加橡皮圈和滚轮之间的摩擦力
刚开始用纸在橡皮圈和滚轮之间再固定一层增加摩擦力,弄好后效果倒是达到了,但是橡皮圈因此鼓了起来,致使滚动时,老是被卡住
突然想起个把月买过502胶,把橡皮圈和滚轮之间涂上一层502胶,少许时间后,效果达到了
于是在将鼠标组装起来,试了一下效果,嘿!还真不错!
又省了几十块钱换鼠标了,哇哈哈!
2010
6-3
2010
6-3
很少写Flex相关的东西,今天遇到了这个问题,想了很多办法,也查了百度,都没有得到比较正确的办法。
下面是解决的办法,但不知道有没有更简单的办法就是了,俺只是业余摆弄一下Flex做一些AIR小工具。首先是一段DataGrid相关实例代码:
1、得到resize之后一定要dataComp.validateNow();,这样取出来的总列宽才是正确的!
2、第一个for循环在计算总列宽,直接取dataComp的宽度是不对的,它会包含滚动条的宽度,我也不知道有没有什么办法可以直接取到总列宽,因此我采用了for循环去累加列宽;
3、第二个for循环在设置widthList中是在设置需要固定列宽的子项,然后从总列宽中减去;
4、第三个for循环在设置widthList中是按百分比设置子项列宽。
下面是解决的办法,但不知道有没有更简单的办法就是了,俺只是业余摆弄一下Flex做一些AIR小工具。首先是一段DataGrid相关实例代码:
<mx:DataGrid id="dataComp" dataProvider="{resultList}" width="100%" height="100%" sortableColumns="false" selectable="false"
resizableColumns="false" draggableColumns="false" resize="dataCompResizeHandle()">
<mx:columns>
<mx:DataGridColumn dataField="line" headerText="行数" textAlign="center" width="40"/>
<mx:DataGridColumn dataField="text" headerText="匹配文本" paddingLeft="5" paddingRight="5"
itemRenderer="mx.controls.Label"/>
<mx:DataGridColumn dataField="path1" headerText="路径" paddingLeft="5" paddingRight="5"
itemRenderer="mx.controls.Label"/>
<mx:DataGridColumn dataField="times" headerText="次数" textAlign="center" width="40"/>
</mx:columns>
</mx:DataGrid>
侦听resize事件,当得到resize之后做这样的操作:resizableColumns="false" draggableColumns="false" resize="dataCompResizeHandle()">
<mx:columns>
<mx:DataGridColumn dataField="line" headerText="行数" textAlign="center" width="40"/>
<mx:DataGridColumn dataField="text" headerText="匹配文本" paddingLeft="5" paddingRight="5"
itemRenderer="mx.controls.Label"/>
<mx:DataGridColumn dataField="path1" headerText="路径" paddingLeft="5" paddingRight="5"
itemRenderer="mx.controls.Label"/>
<mx:DataGridColumn dataField="times" headerText="次数" textAlign="center" width="40"/>
</mx:columns>
</mx:DataGrid>
//数据对象重设尺寸处理
private var widthList:Array = [40,0.7,0.3,40];
private function dataCompResizeHandle():void{
dataComp.validateNow();
var value:Number,display:DataGridColumn,i:int;
var list:Array = dataComp.columns;
var length:int = list.length;
var dataWidth:int = 0;
for(i = 0; i < length; i ++){
display = list[i];
dataWidth += display.width;
}
for(i = 0; i < length; i ++){
display = list[i];
value = widthList[i];
if(value > 1){
dataWidth -= value;
display.width = int(value);
}
}
for(i = 0; i < length; i ++){
display = list[i];
value = widthList[i];
if(value <= 1) display.width = int(dataWidth * value);
}
}
要点注释:private var widthList:Array = [40,0.7,0.3,40];
private function dataCompResizeHandle():void{
dataComp.validateNow();
var value:Number,display:DataGridColumn,i:int;
var list:Array = dataComp.columns;
var length:int = list.length;
var dataWidth:int = 0;
for(i = 0; i < length; i ++){
display = list[i];
dataWidth += display.width;
}
for(i = 0; i < length; i ++){
display = list[i];
value = widthList[i];
if(value > 1){
dataWidth -= value;
display.width = int(value);
}
}
for(i = 0; i < length; i ++){
display = list[i];
value = widthList[i];
if(value <= 1) display.width = int(dataWidth * value);
}
}
1、得到resize之后一定要dataComp.validateNow();,这样取出来的总列宽才是正确的!
2、第一个for循环在计算总列宽,直接取dataComp的宽度是不对的,它会包含滚动条的宽度,我也不知道有没有什么办法可以直接取到总列宽,因此我采用了for循环去累加列宽;
3、第二个for循环在设置widthList中是在设置需要固定列宽的子项,然后从总列宽中减去;
4、第三个for循环在设置widthList中是按百分比设置子项列宽。



- 查看svn更新内容以及最新状态(实时更新)
- 查看框架API文档(09.6.15更新)
- 查看框架代码(09.4.20更新)
框架暂停开发,且没有完全竣工,目前只能使用air包和library包!