入行5年多的as3程序员,不知道未来怎么样!该转型吗?对未来有些迷茫!

这是我对知乎上一个问题的回答,原文见: http://www.zhihu.com/question/28584388/answer/41376487

原文问题:

入行5年多的as3程序员,不知道未来怎么样!该转型吗? ?对未来有些迷茫!?

转型哪个新语言呢?unity,cocos2dx,swift,oc,h5,java还是c++呢!

我的回答: 继续阅读入行5年多的as3程序员,不知道未来怎么样!该转型吗?对未来有些迷茫!

【未完待续】一个基于AS3的plist库

一个基于AS3的plist库

本文并未全部完成,请耐心等待……


为了在 Sprite Sheet Editor 中加入 plist 格式的 metadata 支持,我在 f60k的as3plist库 基础上进行了修改,实现了我的 as3plist 库。

Plist格式的本质是XML文件。由于AS3内置XML支持,所以这个库的实现还是比较容易的。

Cocos2d-x 中大量使用了plist格式文件 ,因此实现plist的支持非常必要。目前我还没有找到软件能导入 plist+png 格式的 Sprite Sheet。大多数软件都只是能生成该格式。而 Sprite Sheet Editor 只需要稍加修改就能做到这一点。

由于精力有限,项目中的文档并不齐全且可能有错,直接编译 sample 会比较靠谱。

下面是范例代码: 继续阅读【未完待续】一个基于AS3的plist库

Robotlegs2中文教程-1使用MVCBundle

Robotlegs2中文教程-1使用MVCBundle

本系列全部文章:using robotlegs2

目的

本章使用Robotlegs2自带的MVCBundle实现一个简单的MVC实例。

Robotlegs2在架构设计上,框架仅实现了生命周期管理、Logger、消息调度、插件管理器、配置管理器等核心功能,其他功能全部使用插件实现。而MVCBundle,就是Robotlegs2提供的一个插件和配置集合,这个集合包含所有MVC需要的插件和功能。

本章不会研究Robotlegs2在结构上的设计,而是从最终用户的角度来使用MVCBundle。若希望了解Robotlegs2的架构,请关注本系列后续文章。 继续阅读Robotlegs2中文教程-1使用MVCBundle

Robotlegs2中文教程-概述

Robotlegs2中文教程-概述

起因

好久没写长文了,感觉平时写代码多了,在遣词造句上逐渐生疏起来。博客也慢慢写得七零八落,彻底沦为只有自己能看懂的个人笔记(当然,对我来说这并没有什么不好 :))。

趁介绍Robotlegs2的机会,锻炼一下文笔,看看自己还有没有被废掉。

本文开始的时候,Robotlegs2的版本为b6。此时,网上完全找不到像样的中文介绍,更别说文档了。即使是在Robotlegs2官网知识库,也没有系统的学习资料,只有爱好者们写的一些Sample,或者框架作者以及资深用户在回答网友问题的时候形成了一些有用的资料。当然,还有框架源码中可爱的README以及源码注释。

Robotlegs2有一个漫长的发展期。正因为这个“漫长”,导致了网上找到的一些依赖“旧版本”的Robotlegs2制作的sample无法在新版本上运行。前段时间,Robotlegs的作者闭关了一段时间,框架的进展突然加速,接连发布了几个beta版本。到了现在的b6版本,整个框架已经比较稳定了。

我在 Github 上watch了Robotlegs2项目,每天都能收到关于框架的最近进展与issue。框架的两个作者关于功能的讨论相当活跃和激烈,即使是在我写本文的过程当中,某几个类的位置都发生过变动。两个作者甚至在讨论修改SwiftSuspender的问题。因此,在 框架release 之前,我不会深入到源码级别进行介绍。

本系列教程会比较长,完整目录会在这里更新:using robotlegs2继续阅读Robotlegs2中文教程-概述

使用ANE整合Facebook

Integrating facebook use ANE

使用ANE整合Facebook

  • 2013-04-02更新: 加入Native Android App设置部分
  • 2013-05-17更新: 加入支持Android SDK3.0的项目介绍

如何在AIR编写的移动应用中整合Facebook?以下是我这两天的研究成果。

1. 如何阅读开发文档?

Facebook的开发文档很全,但对于一个时间紧、任务重、被Boss一天催10遍,急于实现整合的开发者来说,或许没有那么多时间去详细阅读所有文档。这里整理了一个顺序:

1.1 The Login Dialog

无论如何,登录是第一步。这篇文档不但介绍了关于登录的所有细节,也详细介绍了关于Permissions的用法。去吧:The Login Dialog

1.2 Dialogs Overview

各种SDK中,都提供了Dialogs的相关方法。那么Dialog是什么呢?这篇文档让你了解全部。去吧:Dialogs Overview 继续阅读使用ANE整合Facebook

AIR对Mobile设备位图取色的问题

AIR对Mobile设备位图取色的问题

在网页游戏开发中,我经常使用bitmapData.getPixel32来获得单击的部位的透明度值,以此来确定是否交互。

在PC平台中,这个用法是很靠谱的:

public function checkOpaque($x:Number,$y:Number):Boolean
{
    //如果没有图像,当然是透明的
    if(!this.bitmapData) return false;
    var __argb:uint = this.bitmapData.getPixel32($x,$y);
    //否则就判断透明度
    return  (__argb>>24&0xFF) > 0;
}

但是,到了Mobile平台上,这个方法就有问题,使用getPixel32获得透明部分的像素值,得到的是16777216!

这个值其实是2的24次方。也就是说,在Mobile平台上,getPixel32只能支持到24bit色彩!

那么,是不是我的设置不正确呢?在AIR项目配置文件中,可以设置colorDepth,默认值为16bit,将其设置为32bit,还是没有作用。

所以只能把判断函数改成这样了:

public function checkOpaque($x:Number,$y:Number):Boolean
{
    //如果没有图像,当然是透明的
    if(!this.bitmapData) return false;
    var __argb:uint = this.bitmapData.getPixel32($x,$y);
    trace('单击的像素的颜色:', __argb.toString(16));
    //手机上可能最大只能支持到24bit颜色,所以当颜色等于24bit颜色的最大值的时候,直接认为像素是透明的
    if(__argb == 0x1000000) return false;
    //否则就判断透明度
    return  (__argb>>24&0xFF) > 0;
}

Flash Player右键菜单终于可以取消了,我等了十几年……

昨天Adobe发布了 Flash Player 11.2 RC版 ,这意味着伴随着我们十几年的FlashPlayer右键菜单终于可以取消了。

随之而来的还有鼠标坐标锁定功能,睡眠事件支持等等,详细列表看这里:http://labs.adobe.com/technologies/flashplatformruntimes/flashplayer11-2/

下面这个例子演示了右键支持以及到底什么是鼠标坐标锁定。点击鼠标左键全屏观察鼠标锁定效果。右键取消全屏。

这个例子需要Flash Player 11.2支持,请在这里下载:http://labs.adobe.com/downloads/flashplayer11-2.html 继续阅读Flash Player右键菜单终于可以取消了,我等了十几年……

Starling框架帮助手册中文版

如果你因为 对Adobe的失望 不愿意再学习Stage3D,而选择了其它语言。那么在转换的这段痛苦的时间里,不如继续利用Stage3D的GPU加速功能开发2D游戏吧!如果你决定这样,那么一定不要错过 Starling

Starling 是一个基于Stage3D所开发的一个能够使用GPU来加速的2D Flash 应用程序的ActionScript3 框架。

Facebook上的Flash版《愤怒的小鸟》,就使用了这个框架。

这里是ByteArray.org提供的《Introducing Starling》,介绍该框架的使用方法。

英文版下载:

  Introducing Starling (8.2 MiB, 801 hits)

中文版下载(S_eVent翻译):

  Introducing Starling中文版 (1.8 MiB, 1,369 hits)

无力吐槽:观近期Adobe Flash Platform战略有感

注:下方的所有言论,仅限吐槽。中间使用的所有头衔均系我自封,所有脏话仅限于增强文章的感情色彩(吐槽专用),无任何的针对性,也不会影响我对Adobe这伟大公司的崇敬之情,勿喷勿喷……


今天一早看到 Adobe放弃Linux平台除Chrome浏览器之外的Flash Player插件 的消息,不禁心头一震,XX一紧。心想你这败家子 放弃Linux上的AIR 也就好了,现在又放弃Linux上的 Flash PLayer?你让我这 在Linux上用Vim写AS3 的家伙怎么玩?你还不如直接把Windows也放弃掉把……

但接着有看到了 Adobe对于Flex的看法以及对未来Flex的承诺Adobe Flash runtimes路线图 两篇文章,心情逐渐放松了点。

就在我的上篇 吐槽文 中,我写道:

说不定那天Google想了想,老子也把Chrome Only的Native Client拿来做强插?

没想到才两天,强插就真的发生了,只是主语变成了Adobe。

从Adobe对Flex的承诺来看,Adobe不但拿出了足够的诚意。也足够傻B,摘录几点如下: 继续阅读无力吐槽:观近期Adobe Flash Platform战略有感