2010-07-29
Yi的博客

美国“砖家”

我的朋友 Iceskysl 最近很郁闷,因为他上了著名的风投博客 Venturebeat首页。事情是因为他写了很多Andriod手机的软件,他写的软件很好用,很快下载量过百万。于是被不负责任的美国黑客盯上,最近的BLACK HAT大会上,某个公司借机推出一款叫做lookup的手机查马软件。据说这个软件在大多数手机上查出40%+的程序在偷窃用户数据(WOW!)。而Icekysl是一位来自中国的受欢迎的手机软件作者。于是手机后门+中国威胁立刻就成了这款基于求成的lookup的炒作主题。在BH上炒一炒后就被半懂不懂的VB小编搬上了MobileBeat的首页。MobileBeat作为Venturebeat的重头内容,在国内的互联网“先锋”中很有影响力,于是被国内的各种网站不伦不类地翻译过来再添油加醋地继续炒…读罢新闻之后,我惊叹原来Iceskysl是一个掌控着全球手机的恐怖大BOSS

Errr…..American 砖家 sucks!

Tencent ISD Flash Team

QQ餐厅在QQ空间上线咯~

2010年7月29日正式在QQ空间上线公测,从现在开始所有LV7黄钻用户可以第一时间抢先体验!祝大家玩的开心!

为了能让玩家有更好的体验,QQ餐厅默认将以大窗口方式游戏,如果您不习惯,也可以在游戏设置中设置回小窗口模式,如图:

laan

关于Frame的事件

突然发现as3中关于Frame的事件多了两个:Event.EXIT_FRAME,Event.FRAME_CONSTRUCTED。还好从字面上容易理解。帧渲染时,先触发Event.ENTER_FRAME,然后是Event.FRAME_CONSTRUCTED,然后是运行帧代码,渲染帧,然后是Event.EXIT_FRAME… 哥表示很淡定: public class Test extends MovieClip { 阅读全文——共796字
tamt

[转载]探望白血病儿童马粒之

作者: 阮一峰

日期: 2010年7月28日

两周前,我收到一封求救信。

一个名叫马书柱的陌生人,请求我帮助他的儿子马粒之。他说,孩子得了白血病,需要30万元的医疗费。

于是,我就在网志上提了一句,欢迎大家向他捐款。结果,有人就说,这会不会是骗子?……我只好承诺亲自去看一看。

============================

上周末,我从厦门回到上海,立刻就与马书柱取得联系,约在今天(7月27日)下午到医院探望马粒之。

1.

吃过午饭,我来到东方路上的上海儿童医学中心。

2.

这幢大楼就是住院部。

3.

三楼的血液科病房。

4.

找到3005室。

5.

这个病房一共住6个小孩,全部都是白血病患者。马粒之的床在最里面,拉着围布的那一张。

6.

病床前的牌子写着”马粒之 4岁 自费病人”,下面是用药单,记录了今天要用的药。我数了一下,一共9种。

7.

这时候,他妈妈正在给他喂饭。昨天晚上,小家伙刚刚退烧,现在精神还不错。

8.

我原以为,马粒之这次住院是因为化疗,但是一问才知道不是,化疗是在门诊完成的。

六天前,马粒之突发高烧,所以才住进医院。此后的六天,一直高烧不退,都快把他父母急死了。

9.

马书柱告诉我,由于各种药物都无法退烧,医生怀疑是真菌感染,就让他们去买一种”丽福康”注射液。每盒只有0.1g药粉,售价却高达450元,马书柱买了6盒,总计2700元。

我回家后网上一查,发现”丽福康”号称是”最先进的抗真菌药”。我就很不解了,真的有必要使用这么高级的药吗?便宜的抗真菌药,市场上有很多啊!主治医生明知病人没钱,还推荐这么贵的药……好在使用了”丽福康”,马粒之今天确实退烧了。

10.

马粒之还在输血。这样的一袋血,他每周要输1~2袋。他的血细胞,已经失去了正常的造血功能。

我问马书柱,这一袋血多少钱?马书柱说,血浆280元,检查费260元,所以每次输血总共要花费540元。我问,检查费是指什么项目?马书柱说,主要是查肝功能。这下我震惊了,这个医院居然每周查一次肝功能!

防止乙肝病毒输血传染,这是院方的责任,怎么能推给患者呢?马粒之只在你这里用血,你居然还要他出钱,检查你有没有把病毒传染给他,这是何等霸道的收费啊?……何况肝功能是一个比较稳定的指标,每星期查一次,根本没必要。

11.

我为马书柱全家拍了一张合影。然后,我就开始了解他们这个家庭的概况。

马书柱是河南省南阳市唐河县人,1976年11月生。高中毕业后,在南阳技校上了40天的电脑培训班。(我问,培训内容是什么?马书柱答,打字。)2000年,他去深圳打工,此后还去过广州和东莞,主要负责商场POS机的系统管理。2003年,他结婚。2005年9月,马粒之出生。

12.

2009年5月30日,马粒之出现瘀血症状。南阳县医院检查后,认为是白血病。家里不相信,到郑州复查,结论依然是白血病。

抱着对大城市医院的信任,马书柱带着儿子来到上海。6月6日抵达,6月12日就开始第一轮化疗。服用药物后,病情立刻得到缓解。2010年2月底,十轮化疗全部结束,医生对马书柱说,如果一年内不复发,马粒之的白血病就算治愈了。

不幸的是,停药后三个月,2010年5月8日,马粒之出现复发症状。他不得不再一次住进了医院,开始了第十一次化疗。医生说,复发后的化疗有效率只有30%,你们要做好思想准备。不幸中的大幸是,这一次化疗依然有效,马粒之的病情再一次缓解了。

但是此时,马书柱已经无法承受经济压力了。单单是第十一次化疗的住院费用,就超过2万元。而从2009年5月至今,为孩子治病的所有已经发生的支出,合计超过21万元。

马书柱夫妇不仅花光了所有的积蓄,还欠下了一屁股债,亲友都已经借遍了,已经到了打电话对方都不接的地步。面对未来巨额的医药费,他们一筹莫展,只有支出没有收入的生活可怎么办?

13.

马书柱每个月都去献血。上海市血液中心规定,捐献血小板的间隔不得少于28天,他就每隔28天去一次血液中心。

根据规定,献血者本人及其家属,可以等量用血。因此,马书柱这样献血,可以减少一些马粒之输血的费用。另外,献血者可以优先用血,这对马粒之也有好处。如果医院当天来了三包血浆,而有五个小孩需要用血,马粒之就不至于输不上血。

14.

献血的时候,别人都献一份,马书柱每次都献双份。那里的医生都已经认识他了,劝他不要这样,但是马书柱坚持抽满两份血才离开。

我问马书柱,你每天的伙食费是多少?他说,不超过5元,有时甚至只花2元,就在医院食堂吃几个白馒头。

15.

由于病情复发,马粒之的白血病已经不太可能通过化疗治愈了,最好情况下,化疗也只能缓解病情。只有骨髓移植,才能挽救生命。而且越早移植越好,因为化疗时间越长,对内脏器官的损伤越大,移植后产生的排斥反应也越大,移植的成功率就越小。

骨髓移植的第一步,是向中华骨髓库申请骨髓检验,检验费2800元。结果就是下面这张表。

16.

得到骨髓检验结果后,中华骨髓库初步筛选出符合条件的5位志愿者,进行高分辨血样复查,以确定是否真的符合移植条件。

每位志愿者的高分辨血样复查费是3600元,由申请骨髓移植者承担。马书柱一共付了两份复查费(也就是7200元),对两位志愿者进行了复查。结果,其中有一人确定可以为马粒之提供骨髓。

17.

上周五,马书柱又向中华骨髓库交纳了20000元的骨髓采集费,包括捐献者误工费5000元、采集前的体检费、采集后的体检费1500元、捐献者及运送造血干细胞人员的交通食宿费12500元。

18.

这就是说,骨髓移植还没有开始前,马书柱已经为此支付了前期费用2800+3600*2+20000=3万元。

据估计,骨髓移植的手术费加药物费需要30万。医院的规定是,手术前必须交齐20万元,否则不能进入隔离仓。没钱的话,即使你有配型成功的骨髓,也不给你动手术。我完全相信,这条规定会得到严格执行,因为马书柱告诉我,这次马粒之高烧住院前,他们预交了5000元住院费,结果5天就花完了。第六天,医院就对马粒之停药了,告诉他们必须再预交10000元,否则不给恢复用药。

我问马书柱,30万元骨髓移植费,你现在凑了多少?马书柱说,几乎一点都没有。我说,那怎么办?他说,实在不行,我就去求打工时的老板,愿意为他打工一辈子。

我又狠下心问,如果不进行骨髓移植,会怎么样?马书柱说,我们知道其他生这个病的小孩,最后死时很痛苦,我们实在不忍心马粒之这样。

19.

接着,我提出到马书柱租的房子去看看。那是一个老式住宅区,距离医院步行15分钟。

20.

他们租的屋子在5楼,楼道非常破旧。

21.

房子就是简单的一室户。外间是很简陋的煤卫,里间是一间15平米左右的卧室。没有家具,马书柱说,桌椅都是好心的邻居给的,还给了一辆破自行车,现在就是他们全家主要的交通工具。

这间屋子的租金是1700元/月。

22.

有一个14寸的彩色电视机,马书柱说,那是献血时认识的好心人给的。

23.

屋里还有一个有线电视Modem。马书柱说,那是400元的二手货,其中包括3个月的宽带上网费。

24.

告别马书柱,我回到大街上,心里不由泛起无限感慨。我从没料到,居然有一天,我会为一个陌生人,感到如此烦恼。

救助像马粒之这样的重病儿童,是政治家的责任,不是我的责任。我只是一个普通人,收入不高,没有能力当慈善家。新闻报道里说,全国每年白血病儿童新增1.6~2万人,可是只有1200~1500人得到正规诊治。就算我能帮得了一个两个,可是剩下的还有千千万万个,以后要是不断有人写信向我求助,我该怎么办?

一直以来,我都很低调,躲在图书馆里,不想直接面对这个社会最苦难的那些人和事,可是这样的事情偏偏找上门。时代不放过你,逼着你表态,你到底有一颗怎样的良心。政治家可以不负责任,可以不要良心,但是我做不到,无法扭过头去,如果我再装作没有看见,也许马粒之真的就活不下去了。看着他就在我面前,机灵地爬来爬去,真的是于心何忍。

25.

马粒之小朋友,叔叔没本事,不知道怎样才能救你。

30万元的手术费,在这个城市里,连一间没人要住的亭子间都买不到。可是,你很可能就会因为搞不到这点钱,而痛苦地死去。

也许有些人会对你说,很不幸,这就是你的命运,谁叫你生在中国,谁叫你这么穷。是的,也许我也会狠着心这么说,痛苦地承认这是实话。但是,不,不是现在。现在,让我们暂时忘记这些话,假装说服自己会有奇迹发生。

迄今为止第一次,我希望我的网志能有更大的影响力,希望有更多的人,能够读到这篇文章。如果你读到了,希望你能做点什么,哪怕只是转贴一下。

============================

马书柱的手机13671623478,他现租住于上海市浦东新区南泉路1111弄峨山小区20号503室。愿意上门看望的朋友,欢迎与他联系。

捐款帐户:

* 户名:马粒之
开户行:中国建设银行股分有限公司上海六里支行
账号:1214 8799 8011 1070 196

* 户名:马粒之
开户行:中国工商银行上海南泉路支行
账号:622202 1001068165205

* 户名:马粒之
开户行:中国邮政储蓄银行上海市临沂储蓄所
账号:6029 2325 0213 4793 84

* 户名:马粒之
开户行:农行上海浦建路储蓄所
账号:622848 0031037264012

* 户名:马粒之
开户行:上海银行蓝村支行
账号:300845620210015

* 支付宝账户: 68280388@QQ.COM (实名:马书柱)

* 财付通账户:68280388@QQ.COM (实名:马书柱)

其他情况参见网站:http://www.malizhi.com

(完)

laan

百度偶像对外开放——需要邀请码

如题,地址:http://o.baidu.com 邀请码: http://o.baidu.com/cms/invitation/?invitecode=c63d131742b4203805843a54830452e0 http://o.baidu.com/cms/invitation/?invitecode=93c4dc376091d4f7e408e6c2a64f3035 http://o.baidu.com/cms/invitation/?invitecode=6c766dd46239f9236cb6f43ae2102135
SWFSH.COM FLASH开发者交流会

7月24日活动视频 – 简化复杂的FLASH应用程序

简化复杂的FLASH应用程序

主讲人:SGF – 谈熠

宋欢的博客

some article about swiz framework

if you prepare to study the swiz framework , this is some article that very good. 1, Second Generation Micro-architectures, Part 1: The Swiz Framework 2,Architectural Analysis of the Swiz Framework, Part 2: Central Event Control,General 3,Enterprise Flex and the Swiz Framework Architecture, Part 3: Using Autowire and Mediate

2010-07-28
USUN

一个里程碑

从2006年开博以来终于有一篇日志访问量过千了,标记一下,一个里程碑,我做了一个logo(附带PSD源文件,下载地址下图附近)
访问量到1000的一篇关于Actionscript的文章地址:http://pqoct.com/2008/08/07/1456.html

PSD源文件

相关文章:

  1. Calendars 日历图标的设计 看到了国外网站整理了一些关于日历图标的设计,转到博客中。 其中有一些比喜欢的有: 这些图标,比较精致,自己的作品风格也接近于这般。 但有些图标出于考虑的因素不同,对图标的设计需求也有所不同,比如:强烈的视觉反差,加大时间日期的文字提示效果,色彩的对比度,以及样式细腻程度。从这些角度出发整合出一套真对不同人的欣赏方案。 日历图标的设计,这些大多考虑日期”日”提示,而忽略星期的提示,并不认为只注重对”日”考虑,在应用范围受限制(如博客)或是强调日的概念时,重点对日的提示。...
  2. flash 直播的相关问题 北京奥运会期间用Flash做电视直播 http://pqoct.com/2008/08/13/1485.html 自从上次写了一个关于flash + flash...

8only.cn-创见未来

ItemRenderer在DataGrid中涉及问题解决

一、设若DataGrid中有个ComboBox的ItemRenderer,操作这个ComboBox,影响其它列的值变化。要使Flash的画面Redraw,需要将绑定到DataGrid上的ArrayCollection执行refresh(). 二、涉及到需要通过绑定数据来更新显示...
2010-07-27
大头's Blog

Flash CS5文本问题

今天遇到一个奇怪的问题,两个文本同样的属性,表现出来的效果却不同,一个加粗,一个则无!
SWFSH.COM FLASH开发者交流会

7月24日活动视频 – Flash-MMORPG游戏引擎及工具开发概述

Flash-MMORPG游戏引擎及工具开发概述

主讲人:明朝时代 – 张明光(网名:吾系衰人)

7月24日活动视频 – WebBase

WebBase

主讲人:吴志华(网名:望月狼)

7月24日活动视频 – FLASH 游戏应用框架和模块化开发

FLASH 游戏应用框架和模块化开发

主讲人:邱广钦(网名:大头)

7月24日活动视频 – 麻球演讲

麻球演讲

主讲人:麻球网 – 廖湘宁(网名:大脸猫)

7月24日活动视频 – 浅析flash特效开发

浅析flash特效开发

主讲人:陈勇(网名:手心可人)

fireyang's blog

FlashDevelop导出SWC工具

之前一直有用FD(FlashDevelop)的swc导出工具,今天一同事问起,顺便在这里推荐给大家。

http://sourceforge.net/projects/exportswc/ 已经是开源的项目了,有兴趣可以看看源代码的。

下载地址:exportswc 2.0 2.0版本的,只要你安装了FlashDevelop,只需要双击就自动安装了,不再需要复制到plugin目录下了,方便极了。

再次打开你的FD,你就可以看到如下这样的图标了:

点击这个,在FD的项目的bin下就有你需要的SWC了,就可以用了,是不是非常方便呢,哈哈

SWFSH.COM FLASH开发者交流会

7月24日活动视频 – Flash网络通讯处理

Flash网络通讯处理

主讲人:陈苏俊(弃天笑)

Call me Mr.胖胖先生

转:中国式产品经理

转载自豆瓣,原帖地址:http://blog.rexsong.com/?p=9639 继续探讨产品经理的话题,我看了很多回复,基本反馈的问题可以归结为两类: 老板才是真正意义上的产品经理,而“产品经理”们只是协调和执行者; 只有在“产品经理”位置上才能做产品设计,不然所谓设计可能只是部分交互设计。 产品初期,尤其创业团队做的那种小产品,老板就是产品经理的现象很普遍。而且根据“产品经理应该是对产品理解最深刻的人”的定义,我认为创业团队的产品经理非老板莫属,就得是创意和模式的发起人。 产品还没有上线,或者规模和影响力也足够小。所以老板有空闲有必要事必躬亲,甚至陪着创业团队封闭开发,主导产品的市场定位以及发展策略。但当产品发展到一定规模,需要扩展产品群的时候,此时老板的时间和精力必然会受影响。包括各种行业聚会、公关合作和圈钱座谈,也包括黑白两道来收保护费,都免不了大把时间吃饭喝茶。终于有一天,老板们开始觉得力不从心,最好能有个对产品理解与自己相当的家伙来代行产品经理职责。 挖产品经理通常是不太现实的,专业能力是一方面,忠诚度是另一方面。产品是公司的命脉,而产品经理则是产品成败的关键。比较靠谱的办法是培养产品经理,也就是在公司做产品所有职能的小弟小妹里精挑细选认真比对,能入法眼者用心培养并委以重任久经考验,最后光荣上岗。 原则上实行一位产品经理带一个产品的“终身制”,有两种情况可能需要调整。产品横向发展,在产品规模拆分扩大形成产品群的时候,需要更多产品经理加盟(大公司经常可见)。产品纵深发展,原有产品经理发现对此项业务的理解已经跟不上产品发展的脚本了,此时需要对此道更精通的产品经理来把控(小公司经常可见)。 以上基本就是“产品经理”在大小公司的发展状况。另外,我一直在试图把“产品经理”和“产品设计师”这两类职业给割裂开,不是完全断绝,起码各自的核心竞争力得清楚。观察国内早期小公司最普遍的产品线组织架构如下: 老板——实际在从事“产品经理”职能,提目标和策略。 产品经理——实际在从事“信息架构、交互设计”职能,做规划和方案。 设计师——实际在从事“界面设计、视觉设计”职能,美化页面。 这套方案在中国互联网碌碌无为的执行了很多年,直到某年某月,一群设计师高呼“以用户为中心”试图赶走牛鬼蛇神的时候,顺带想把做“规划和方案”的权利也霸占。产品经理们才猛然发现他们不可能触及“目标和策略”,于是气急败坏的冲设计师们喊“那还要我们干嘛?”问题的焦点汇聚到“到底谁做产品更专业”这个问题上,产品经理们认为“年轻的设计师没有太多互联网经验”,设计师们则认为“自大的产品经理们过于自信并忽略了用户感受”。 在权利和体制范围之内,每个层级的人都在试图把自己拔高,这类现象在国内司空见惯。社会上流行“产品经理”,于是某些人认为自己也“应该”是产品经理,先有目标再谈能力,先有理想再谈兴趣。还有些现象我觉得简直就是冷笑话,比如某公司“产品总监”下边管着一个人(姑且认为是为了名片好看吧)。记住,故意而为之往往都没有好结果,包括某些创业小公司也贴大字报招聘“交互设计”职位(此规模不需要细分设计职能)。 归根结底,还是大家对“做产品”和“做设计”认识的狭隘和理解不一致。绝大多数互联网从业者,早些年认为设计约等于美工,无非美化一下页面而已。这些年逐渐接受了新思想革命,认为设计还约等于交互,可以优化一下流程,仅此,但总算又进步了一点点。 这个问题我思考了很久,觉得不应该单独考虑提高设计师们的专业水准,而是得从上往下贯彻思想,让产品经理们对自己有个清醒认识。套用革命领袖的话,坚持“两手抓,两手都要硬。”
Tencent ISD Flash Team

关于MovieClip的跳帧探讨

在AS 1.0 - AS 2.0时代,几乎所有的编程开发都是围绕着MovieClip这个Flash唯一的显示对象来进行的,直到AS 3.0 时代,MovieClip在之前的功能才被分散到了 Shape Bitmap Sprite Loader 等类当中,然而作为最具备Flash代表性的对象,MovieClip依旧占据非常重要的位置。而此文就是围绕着 ActionScript 3.0 的 MovieClip 对象来展开讨论。

MovieClip在执行跳帧行为的时候(gotoAndStop(frame), nextFrame(), prevFrame())会先比较两帧之间的差别,如果两帧之间的内容只是进行了尺寸,位移,等属性级别的变更则只修改属性,并且执行对应帧上的ActionScript,如果两帧之间的内容不同,则移除不应该显示的对象,并且创建需要显示的对象实例并且添加到显示列表当中,最后再执行对应帧上的ActionScript。帧实际上是记录了一系列的显示物品状态和动作脚本。

继续研究下去不难发现,我们写在每个帧上的ActionScript代码类似是写在一个函数里面,而这个函数会在MovieClip跳到此帧的时候被执行,为什么只说类似函数呢?不同的地方在于在时间轴上声明的变量的作用域是在此MovieClip内而非函数体作用域内。也就是说你在第一帧上声明的变量,在其他帧上也能获取到此变量。

下面我们来创建一个测试用例,觉得麻烦的可以直接下载文章的范例附件。

第一步:

在舞台上创建一个MovieClip原件,取名为: ch,并且双击打开ch 并且在 ch的第一帧随便画一个矢量图,将此矢量图也转换成一个 MovieClip 元件,然后在第二帧按下 F7 创建一个空白的关键帧,再随便画一个矢量图,也和刚刚一样转换成 MovieClip 元件,最后在第三帧按下 F6 创建关键帧,此时第三帧应该有第二帧创建的元件,这次只用鼠标移动下此MovieClip元件的位置。

第二步:

在 ch 的第一帧上写下如下脚本:

stop();
var c:int = 12;
trace("declare variable c at frame 1;");

在 ch 的第二帧上写下如下脚本:

trace("run timeline actionscript at: " + getTimer());
trace("typeof c at frame 2 is:" + typeof c);

第三步:
返回到舞台,并且在舞台的时间轴上的第一帧写下如下脚本:

ch.addEventListener(Event.ADDED, handleChildAdded);
ch.addEventListener(Event.REMOVED, handleChildRemoved);
ch.gotoAndStop(2);
setTimeout(function():void{ch.gotoAndStop(3);}, 1000);
trace("gotoAndStop function executed at: " + getTimer());
var m:DisplayObject = ch.getChildAt(0);
if (m)
{
    trace("i have child at 0!");
}
else
{
    trace("oops, nothing there...");
}
 
function handleChildRemoved(e:Event):void
{
    trace("removed some children!");
}
 
function handleChildAdded(e:Event):void
{
    var t:int = getTimer();
    var target:DisplayObject = e.target as DisplayObject;
    //当有新的显示对象被添加到显示列表,会trace出信息
   trace(target + " added at: " + t);
}

第四步:

把发布设置成: Flash Player 10, ActionScript 3.0

然后 Ctrl + Enter or Command + Enter,看output输出的信息:

removed some children!
[object Shape] added at: 5
[object MovieClip] added at: 5
run timeline actionscript at: 5
typeof c at frame 2 is:number
gotoAndStop function executed at: 6
i have child at 0!
this frame 3

再把发布设置改成:Flash Player 9, ActionScript 3.0

然后 Ctrl + Enter or Command + Enter,看output输出的信息:

removed some children!
gotoAndStop function executed at: 6
oops, nothing there...
[object Shape] added at: 6
[object MovieClip] added at: 6
run timeline actionscript at: 6
typeof c at frame 2 is:number
run timeline actionscript at: 6
typeof c at frame 2 is:number
this frame 3

通过上面的测试,会发现之前没有留意的细节:

1、Flash Player 10 和 Flash Player 9 在 gotoAndStop 方法调用之后执行的方式非常不同。

MovieClip flow

通过上面的图示可以看出Flash Player 9和10之间在跳帧的时候执行逻辑的差异,Flash Player 9相当于在跳帧的时候异步执行了该帧上的脚本,也许是出于优化性能的考虑,但是这给开发带来了很多麻烦,比如每次跳帧的时候需要检查显示对象是否已经被添加到了显示列表当中,通过 Event.ADDED事件进行这一恶心麻烦的判断。相比之下 Flash Player 10的逻辑就清晰很多,开发不用担心上面说的问题。

2、Flash Player 9 第二帧的脚本被执行了两次(WTF~)!

这个着实让我想不明白,暂且作为这篇文章的一个遗留问题吧,希望各位高手一起来看是为什么。

代码范例.fla

吾系衰人的博客

Flash-MMORPG游戏引擎及工具开发概述

7月24日 广州东方国际饭店

第四期FLASH专家交流会 演讲ppt:Flash-MMORPG游戏引擎及工具开发概述

豆丁的转换效果比较强差人意:

将就着看吧,

这个是pdf下载版本: http://filer.blogbus.com/1587898/resource_1587898_1280192960k.pdf

下载需要注意的是 因为博客巴士的安全设置,需要将地址拷贝到浏览器地址栏才能下载的,同时不支持下载工具下载,

...


随机文章:

swf加密 2008-12-23
连网5子棋 2007-09-27

收藏到:Del.icio.us




2010-07-26
Catfly猫脸爬格子-廖湘宁的博客

开发与上传麻球游戏教程(n神版)

麻球平台 最近炒的比较火,不了解的可以点前边链接进去看看。圈内好多朋友都写了文章帮忙推广,大部分都对这个平台看好,我也看好。但究竟开发者靠这个能赚到多少钱,也没人贴出实际数据分享一下。江湖上有一个传说,是说好的游戏可以赚18万美刀。但也有网友爆料费劲做了好久的游戏只赚几毛人民币。究竟为什么有这么大悬殊,谁真谁假,一般的游戏会赚多少,我也不知道,所以我也准备做个简单的小游戏试试。如果成功的话,未来公布一下收入数据。虽说坚持做独立游戏者一般都是为了个人爱好并不是冲着钱去的,但我觉得如果mochi想要在国内良性发展,至少要想办法让游戏开发者周末大热天写代码的时候舍得开开空调,舍得叫个麦乐送吧?最差也得一品三笑啊。不然大家生活压力都这么大,谁能顶得住爱好。。。。废话不说了,这篇是个新手小教程,如何最简单的把自己做的游戏加上麻球那一套东西,包括广告啊排行榜啊,等等。其实很简单,文档都不用看,顺着流程走一遍就明白了。mochi的引导做的非常好。

一般来说,先把游戏做的差不多了,准备再调整调整就上线了,这时就可以添加mochi那一套东西了。

根据别人总结的经验学来的,做游戏之前一定要
1.做英文的,因为中国人的钱不是那么好赚的 ,英文不好可以请假网友或谷哥。
2.做成一个swf文件,不要加载外部资源,方便传播。因为mochi的原理是传的越多,赚的越多。即使别人下载到硬盘上玩,你也赚广告费。

好了,开始

第一步,注册个mochi账户,登录,添加游戏,如图,注意把在线更新选上,我很喜欢这个功能,这个功能可以让你更新游戏版本的时候,所有网站都会同步更新,包括之前被别人下载到硬盘中的swf,下次他再打开,只要他联网的,他也会玩到最新的版本。还有很多附加好处,包括不用调用api就自动加上了mochi的广告,被加壳了一下,不容易被破解等。

点击创建,下一步他会给出客户端的api类库下载地址,down下来设置好类路径,写过as3的应该都会的。

还要把上图提供的字符串你要贴到你游戏的主类里,麻球用这个字符串来验证这个是不是你做的游戏。


[SWF(width="440", height="600", frameRate="30", backgroundColor="#FFFFFF")]
public class Main extends Sprite
{
        public var _mochiads_game_id:String = "XXXXXXXXXXXX";
        .........
}

还有一件事别忘了,初始化的函数不要放到主类的构造函数里,要放到ADDED_TO_STAGE事件以后,就像这样


public function Main()
{
        if(stage)
        {
                onAdded(null);
        }else{
                this.addEventListener(Event.ADDED_TO_STAGE , onAdded)
        }
}
private function onAdded(eo:Event = null):void
{
        if(eo!=null)
        {
                this.removeEventListener(Event.ADDED_TO_STAGE,onAdded);
        }
        MochiServices.connect("a2**********8", root,onError);

        initGame()  //初始化游戏
}
private function onError(st:String):void
{
        //trace(st)
}

然后就可以上传了,版本号和描述都可以填个 v1

成功后,应该会看到这个界面。

你再下来后看到的应该已经是带广告的版本了。但现在显示广告还不算你的钱,要填满游戏详细介绍才可以,那应该不难。

接下来可以筹划第2版了,加个排行榜 。

首先在控制面板里点Activate那个积分排行,创建排行榜

确定以后,排行榜就建完了。然后依次点下图中圈里的链接

代码已经给你写出来了,直接复制到游戏里就行了,

比如 高分榜按钮点击时调用


MochiScores.showLeaderboard({boardID: boardID});

他就会自动加载mochi的排行榜并显示出来了,前边的一串代码只是把你的boardID加密了一遍,


var o:Object = { n: [8, 7, xx,xx,xx,xx,xx,14, 2], f: function (i:Number,s:String):String { if (s.length == 16) return s; return this.f(i+1,s + this.n[i].toString(16));}};
var boardID:String = o.f(0,"");

游戏结束时提交分数也超简单,只要调用


MochiScores.showLeaderboard({boardID: boardID, score: 游戏得分});

就会出现提交分数对话框了。

修改后可以再回到版本控制那里,再上传一次新的swf,命名为 v2,更新后,所有之前下载的也都更新了。

其他功能也大同小异,都有引导代码,很简单。其实只有特殊需求时候才需要看那个文档。没什么好写的了,最后贴一个我刚做的小蜜蜂游戏封面图,还没发布,等发布了大家来支持哈。

猫抓鱼

在麻球发布游戏作品的详细教程(转aspirin)

如果您还没有麻球网的帐号,并且不知道如何在麻球网上提交作品,请阅读下面的图文教程,按照教程一步一步(7步)操作,您就可以轻松的提交您的作品。

步骤1:点击注册
麻球首页点击’注册’按钮或 这里 进入注册页面。

步骤2:填写注册信息
对,这里就是一切梦想开始的地方!
  • 点击麻球网右上角的注册按钮,成为麻球网的一员。(见上图)
  • 填写各项内容,阅读并同意服务条款(对于在论坛里泡大的你,这简直就和十以内加减法一样简单!)。
  • 最后,点击“Send”按钮——麻球网将向您刚刚填写的邮箱地址发送一封确认邮件,快去确认一下吧!


步骤3:游戏管理页面
现在,欢迎你加入到麻球网成千上万的开发者当中来!快点把你的参赛作品show给大家看看吧,让所有人都知道麻球网又多了一位你这样的大侠。
  • 点击导航栏上的“开发者”按钮,跳转到游戏管理页面。哇噢,看见这么华丽,这么专业的管理界面,难道你一点都不动心吗?赶紧将你的作品传上来!
  • 点击页面最下方的SETUP NEW GAME按钮创建你的第一个游戏!

步骤4:添加一个新游戏

  • 输入游戏的名字(好名字是游戏迈向成功的第一步,比如:老狼请客?);
  • 输入你的游戏尺寸(500×400以上可以让游戏播放更多的广告,从而获得更多的收入);
  • 选择是否在线更新(作为参赛作品,此项一定要选。麻球网将会对你的游戏施展神奇的魔法,包括自动分发你的游戏更新,加密你的游戏,自动植入广告接口等等);
  • 阅读并同意Mochi广告条款(请勿上传了没经授权的游戏,同时我们也将尽一切努力保护你上传游戏的版权);
  • 最后,点击CREATE GAME按钮,创建你的游戏。

步骤5:添加我们的API
Now it’s coding time!
  • 按照提示将包含游戏的id的代码粘贴到你的游戏代码当中,比如fla文件的第一帧上,或者as类文件中;
  • 选择广告播放的样式(是否和你游戏的颜色相匹配?);
  • 选择编译好的swf,填写游戏的版本号和简单的描述,点击UPLOAD GAME按钮上传;
  • 当上传成功后,你可以点击“下载游戏”按钮将我们处理后的swf游戏文件下载下来(现在你可以将这个文件上传到任何网站上,供大家游戏了!);
  • 点击DONE按钮完成上传,或者点击FILL OUT PROFILE按钮完善游戏的信息;

步骤6:发布游戏
现在是发布你游戏的时候了,让全世界的玩家都看到你的作品!
  • 点击控制面板按钮,跳转到游戏管理页面
  • 在游戏收入这一栏,选择你刚才上传的游戏,进入到游戏设置页面;在游戏资料这一栏点击edit按钮,编辑游戏资料;
  • 按说明填写与游戏相关的各项资料,其中在页面下方的游戏文件这一栏,找到该游戏的url地址,并将地址填写到审核URL中;
  • 最后的最后,在游戏推广栏中点击edit按钮,选择“是”——使用麻球游戏推广,选择“发布此游戏“——将游戏的状态改为发布状态,点击SAVE按钮保存设置;

步骤7:大功告成
好了,大功告成!现在你的游戏便在麻球网上安家啦,你要做的便是常回来看看它,看看它的各项统计和状态,当然还有它为你带来了多少美刀!

在这里,感谢大家上传的游戏为麻球网的玩家们带来了更多的欢乐!

猫抓鱼
Fluid idea for Life

也许有一天,我也忍不住要去买个IPad

在大约一周前,同事拿到了IPad,因为有一个应用要迁移到IPad上,等了一段时间,设备终于配下来了。以前一直对IPad有点不屑,可能是由于Apple与Adobe的嘴仗吧,毕竟我也是靠Adobe养家糊口的,但是,玩弄了一把IPad后,还是狠狠地被震撼了。

今天读到一篇文章,Surprise, I’ve bought an iPad,这位老兄,呃,可以算是Adobe技术传道士吧,但最近Blog中Apple出现的频率是越来越多了。

有位回帖的愤青如此形容Flash:It’s a resource pig, slow, bloated, and insecure. 他对Flash的厌恶已经无以复加了。

2010-07-25
Tencent ISD Flash Team

使用mac中的quicklook查看.as文件并带语法高亮

mac下的.as文件察看方式很单一,默认方式是flash ide,而flash ide开启的速度又让人头大,这时通常有几个备选方式
一是关联flashbuilder,但flashbuilder开启仅比flash ide好一点点点
二是关联vm的FD, 但vm的从暂停状态的恢复速度和flash ide几乎差不多

三是terminal... 这个稍微快点,但是毫无可视化概念

所以对于flash开发者在mac下能够快速查看as的方式是很无奈的。

现发现一个方法,就是使用系统自带的quicklook查看.as文件,方法如下:


首先到 http://code.google.com/p/qlcolorcode/ 这里下载2.xxx版的那个包
然后把里面的QLColorCode.qlgenerator 拷贝到/Library/QuickLook文件夹
右击鼠标选择显示包内容, 然后在LSItemContentTypes 下的添加子节点com.apple.applesingle-archive

然后注销,再进来之后就可以按空格键随意查看.as文件了,超快超方便,这下比在windows里爽了。

cheers

tamt

Vimperator cheat sheet

Vimperator:以Vim的方式使用Firefox。如果大爱Vim,那一定得为Firefox装上这个扩展!

Catfly猫脸爬格子-廖湘宁的博客

7月18华东flash技术峰会上麻球宣传演讲

7月18日的技术峰会挺成功,接触到好些游戏开发者个人或团体。
我的演讲ppt提供下载
现场只允三个人提问,他们的提问如下:

  1. 中国开发者如何拿到人民币收益?
    麻球网正在着手解决中国开发者收取人民币的问题。
  2. 游戏发布到麻球有哪些要求与限制?
    只要求游戏内容健康,老少皆宜的原创内容。
  3. 麻球平台跟开心网,人人网之类的应用有竞争或合作吗?麻球的竞争优势是什么?或者如何合作?
    没有竞争关系,开心网,人人网是社交类网站,而麻球是个游戏内容平台。麻球网正在努力跟中国社交网站达成合作。

麻球的活动演讲视频过些时候会给到我们,下面是精选的活动现场图片:



猫抓鱼
2010-07-22
tamt

FlashInspector 0.1.3更新

”设置查看类型面板“功能完善,自动列出当前swf所有的显示对象类,可以方便选择设置类型。增加了搜索功能。
属性面板增加搜索功能。

Call me Mr.胖胖先生

谈创业:打井预言分析

用户凭什么跟你走 2010-07-22  09:49 欢迎转载,请注明来源地址 hi.baidu.com/caoz/ 先说一个寓言,caoz自己编的。 从前有个山沟,住着一群村民;山沟缺水,村民到处打井。 第一个人出现了,他帮助村民打井总能又快又好,村民都很信任他,但是水仍然越来越少,井越打越深,难度越来越大,村民越来越辛劳。 第二个人住在山顶,他每天都在远眺,有一天他跑下来对忙碌的村民说,你们跟我走吧,离开这个地方去外面的世界。村民放下工具问他,我们为什么跟你走?他说,外面有落日余晖,有大片的草场,有漂亮的花朵和成群奔跑的羚羊。村民说,干我球事,于是拿起工具继续挖井。这个人只好离开,喃喃自语,愚蠢的人们啊。 第三个人出现了,他也帮村民打过井,也在干渴中煎熬过,但是有一天,他走到了山顶,远眺了一下,他的眼镜放出了光芒;他匆匆的跑下山,走到村民中,大声喊。收拾自己的东西,赶紧跟我走,我们现在就出发,离开这里! 村民放下工具问他,我们为什么跟你走? 他说,山外有条大河!我们再也不用打井了!! 故事结束,您应该知道我要说什么了。 第一个人,他是我们常说的合格的产品经理,他理解体会用户的需求,并为此努力着,他奉行绝对跟随用户的原则,这种人,每个公司其实都需要。 第二个人,高端,精英,他看的比别人远,知道的比别人多,他们一厢情愿的以为自己描绘的蓝图可以吸引用户,很抱歉,他们不了解用户真正的饥渴,用户凭什么跟他走?这种人在现实中经常是评论家。 第三个人,是真正的大师,领袖,如果要在现实中找一个载体,这个人叫乔布斯。 好了,谁能让用户跟随,第一你要知道用户的饥渴,也就是本质需求,用户告诉你他需要一口井,其实他需要的是水;第二,看到的比用户更远;第三,有更好的解决用户本质需求的方法和路线。 中国IT产业,呼唤新的大师。 首先呢,用这个标题和文章内容来说企业的管理与文化是驴唇不对马嘴。用户自然是跟着用户需求走,和你企业内部怎么管理是两码事情。那我们暂且把这篇文章从企业管理的角度去分析。 故事中的三种人在企业内的确都是存在的,但是必须使用好。 第一种人就是做执行的,你让他打井他就打井,他只负责最快的把井保质保量保速度的打好,其他的不用负责;第二种人应该是企业的一把手来给企业做决策,无需所有员工都能够理解。这种人做二把手存在没意义,存在也是浪费,不如揭竿而起,自主创业;第三种人是一个理想化的状态,也就是1和2的结合,这种人的存在往往是以一种集体的形式存在,而非单独的一个个体存在。 退回来说直白一点:企业需要一个很有眼光的人做老板;企业需要专心做好本分工作的执行者。拥有这两类人你成功的基础就是存在的。 如果老板没眼光员工执行力再好只能越走越歪;老板眼光好但是团队内声音太多,中高层总觉得自己的意见是对的则会影响眼光好的老板的观念的贯彻,做出一个妥协的垃圾决策则也不会让企业成功。如果老板眼光牛B,中高层也不唧唧歪歪的贯彻执行下去,那么企业就是会成功。 可是,人心隔肚皮,谁知道他脑子里面想的是什么?管理就是这样的一个学问。 很多不盈利、不成功的企业里面这两种人的关系给弄反了。傻乎乎的老板喜欢让执行力强的人来参与做决策——这是创业团队最忌讳的事情。执行力强的人就应该去做执行力强的事情,决策应该老板自己做,无需听取别人的意见,因为公司的成败最终还是归结于老板自己。 当然也有执行力强和眼光好的人存在,作为老板你要想的是:这样的人为何要给你打工?怎样用好这样的人? 如果老板眼光不够好,能力又不够优秀,那么决策则归于公司高层,出问题也往往在于老板不懂管理,无法让高层齐心协力的各司其职。 企业的成功,最终还是归结于一个团队,而这个团队则归结于一个人。 最后再嘲笑下乔布斯这个傻鸟和被傻鸟骗到钱的用户。
2010-07-21
fireyang's blog

FlashDevelop的小BUG

一直用FD进行AS开发,但在项目管理的时候,想对命名空间进行修改,所以,直接采用了文件夹的重命名。

没想到就这样报错了~~~~~~~~~~~~~~~~~~

新修改的文件夹无法修改,无法重命名,打开FD项目就异常。

只能重新建个目录将其中的代码移出来,但是这个目录无法删除,看着就很别扭。

搜了下,找到被脚本可以处理下,在这里记录下,如果有其他人也遇到这个问题可以参考下。

下载:删除顽固文件 (右键-》另存为)

使用:因为blog只支持图片上传,请下载后更改后缀名为.bat。然后将你要删除的文件夹拖置这个脚本之上就可以了……

Norris's Landscape

分享:一个不错的Flash Game

博客已经沉寂很久了,时隔将近一个季度后才再次拾笔书写博文,我深感惭愧。

本篇博文是关于一个Flash小游戏,或与个人喜好相关,致使我对该小游戏甚为推崇,但对于这个Flash小游戏,我还是希望拿出来跟大家一起分享,不论是它的美工风格还是它的逻辑代码实现,完全可以用‘精细“二字来形容。

希望大家能从中获得更多的灵感,做出更好的Flash产品。

Norris 原创文章,转载请注明: 转载自Norris's Landscape

本文链接地址: 分享:一个不错的Flash Game

2010-07-19
tamt

关于DisplayObject.transform.matrix

DisplayObject.transform.matrix记录一个显示对象的形变数据。坐标、缩放(scale)、扭曲(skew)。这个东西是制作如图片编辑器之类应用必须熟悉的。
类似于DisplayObject.localToGlobalDisplayObject.transform.matrix有对应的DisplayObject.transform.concatenatedMatrix用于计算显示对象映射到根级的变形数据。“表示此显示对象及其所有父级对象的组合转换矩阵,回到根级别。”
特别要记录的是Flash Player关于DisplayObject.transform.matrix的一些问题。

  1. stage.transform.matrix

    即是舞台的形变数据,因为AS3中是不允许对stage的x、y、scaleX、scaleY、rotation、transform的值进行设置的(如果查看describeType(stage)输出的xml,这些属性都被标记成“Exclude”),所以stage.transform.matrix的值(设想)应该是(a=1, b=0, c=0, d=1, tx=0, ty=0)。但是测试结果输出的却是(a=5, b=0, c=0, d=5, tx=0, ty=0),这是Flash Player的bug。编写代码时,如果需要使用stage.transform.matrix应该注意这点。

  2. DisplayObject.cacheAsBitmap=true

    之后,囧……,Flash PlayerDisplayObject.transform.concatenatedMatrix的计算值就是错误了。详情参考:cacheAsBitmap hell。这个bug基本上让concatenatedMatrix效用报废了一半。解决方法就是编写另外的getConcatenatedMatrix,逐层计算父级的transform.matrix数据即可。计算到Stage时又得注意第一条中所提到的bug。

  3. 3D

    当对一个DisplayObject使用了Flash Player 10的3d特性,比如设置scaleZ、z、rotationX、rotationY、rotationZ之后,则DisplayObject.transform.matrix的值就变成了null。这个嘛……可能是Flash Player对“3D”的实现机制导致的,抑或是Flash Player又一个bug?

  4. 虽然代码上没有办法对Stage直接进行变形操作(参见1),但是有些操作的的确确会改变Stage的坐标、长宽比例的,那就是:拖拉改变Flash Player窗口的大小,或者改变Stage.scaleModeStage.align的值。Stage.scalMode的四个模式中,StageScaleMode.NO_SCALE最为特殊,这种模式下Stage.stageWidthStage.stageHeight是等同于Flash Player窗口大小的。而其他几种模式下Stage.stageWidthStage.stageHeight总是等于最初值,保持不变。
    待续:用临时显示对象来计算stage.transform.concatenatedMatrix
杜增强

7月31日杭州天地行

活动时间: 7月31日(星期六)
活动地点: 浙江大学(暂定)
参加人员: 前端开发人员,主要为Flash/Flex/AS开发。包括webgame游戏开发,企业前端应用开发,minesite开发人员,UI设计等等。
报名地址

Copyright © 2010

继续阅读《7月31日杭州天地行》的全文内容...

分类: 网闻 | Tags: | 添加评论(0)

还没有相关文章,您来说两句?

曹舒旻的博客

Flash汉字助手源代码放出

明天就要出国休假一周,在此之前先把原先承诺的Flash汉字嵌入助手的源代码整理共享出来。对Robotlegs框架或者AIR2.0开发有兴趣的朋友不妨研究看看,欢迎一同探讨。原则上本软件和源码遵循MIT协议,如果想修改或用此代码做其他用途的,请保留我的著作信息。

关于编译部分,我用的是自己写的ANT脚本,如果你也要发布自己的软件,请在build.xml中修改密码,然后用keystore target生成自己的认证key。

GitHub下载

Tags: , , ,

Related posts


2010-07-16
Tencent ISD Flash Team

腾讯flash team联盟今天成立

原ISD flash team博客现在升级为腾讯flash team联盟,内容由50位腾讯flash开发者共同维护
内容将主要以传播flash文化和技术,以及腾讯的flash产品和开发者故事为主

感谢大家的关注

DannyCheung的博客

用uint做倒序遍历碰到的问题

发现用uint倒序遍历,无法遍历到0这个位上

for (var i:uint = x; i >0 ; i--){

    trace(i);

}

输出x,x-1...1;

for (var i:uint = x; i >=0 ; i--){

    trace(i);

}

输出x,x-1...4294949128,4294949127.....超出15秒

晕,最后还是用回int了事。倒序遍历就像倒退着走路,一不小心还是会摔个跟头···晕~


类别:as3常用代码 查看评论

Kinglong's Blog

有关在Remoting通信中对于返回值是list就会报错的解决方法

对于在“[AS3]AMF3+JAVA的调用范例”中有用户gg留言反馈:请教一问题,这样做返回MAP是没问题,但返回list就有问题了,在flash运行时候报:[Fault] exception, information=ArgumentError: Error #2173: 无法读取流中的对象。类 flex.messaging.io.ArrayCollection 虽未实现

Copyright © 2008

继续阅读《有关在Remoting通信中对于返回值是list就会报错的解决方法》的全文内容...

分类: Flash技术 | Tags: flash  as3  list   | 添加评论(0)

相关文章:

2010-07-15
fireyang's blog

打破flash中bitmapData 2800X2800的限制!

关于图像数据一般都用bitmapData这个类来处理,但是它的局限就是大于2800X2800的大图片就没办法保存了。

根据bit-101的方法就是用自定义一个类用,多个bitmapData组合来使用。

设计如下:

  1. 如果像素在2800之内,当然就用一个bitmapData就可以了
  2. 如果宽度大于2800,就用多个横向的bitmapData来保存。长度超过2800也是一样。(类似将大图片按切片)

作者的说明:http://www.bit-101.com/blog/?p=1199

处理类:BigAssCanvas.as

使用:

var myBigAssCanvas:BigAssCanvas = new BigAssCanvas(10000, 10000, true, 0xff000000);
addChild(myBigAssCanvas);

注意:这个类不是bitmapData,它可以直接添加到显示列表中。