跟flash在一起十五年了。
小的时候,关于Adobe,我先接触的是Photoshop和ImageReady。
后来Macromedia被Adobe收购,网页三剑客成了Adobe前缀,才真正围绕Adobe很多年。
曾经的梦想是“成为Flash大师。提供卓越的网页用户交互解决方案。” 仿佛已经通关毕业了去往新战场了。
最近这十年,从as3崛起到整个Flash被颠覆,看着Adobe一点一点在移动互联网时代把Flash葬送掉,我已经没有了感觉。
反正,现在也没什么地方能用得上Flash了。反正,现在也没什么地方能用得上Adobe全家桶了。
至少有ES6已经足够完善,标准、跨平台、全栈通吃。有ReactNative做App,UI方便好用。
有Unity超方便的工作流,跟美术沟通画草图,我都在Unity编辑器里做了。启动速度比Flash快得多。
有Sketch超级方便快速矢量又超大与时俱进的素材库,启动速度又快,还比PS和AI轻量便宜气质佳。
唯一舍不得的就是用了好几年的IntelliJ IDEA,这货写AS3是神器,当然也可以写白鹭和Laya,曾经装了IDEA就搞定半边天的时代不再了。
现在,我需要WebStorm写JSX配合ReactNative;需要Consulo写C#配合Unity;需要AndroidStudio写Java native code;需要AppCode写C++和iOS native code;
从渣渣FlexBuilder,到用FDT很多年,最后终于转向JetBrains全家桶,世界变得越来越美好了,足够应付所有Coding的事情了。
对Flash的感情其实很复杂,现在人老了,免不了怀旧,我怀念小时候玩红警,玩帝国,星际,后来还有魔兽,也怀念最初的渗透“东北人都是活雷锋”的FlashMTV,还有数不清的南方公园。
可是又知道,一切记忆里的东西,还是存在记忆里吧, nothing lasts forever。
要说Adobe真心不是一家令我喜爱的公司,迪士尼才是,苹果才是。Adobe终结了我的Flash情结,却给不了什么替代品,它只是在时代面前弱小的存在,像大部分实体一样。最后它自己也会成为一份记忆,也许就在我退休之前。
再见了Flash,再见Adobe。
编写的ANE出现Extension context为null的解决
调用ANE的as代码:
1 |
_context = ExtensionContext.createExtensionContext(EXTENSION_ID, null); |
会发现_context总是null,原因是jar的生成过程用的JDK1.7,ane对JDK1.7支持不好。 以前我都是用的1.6所以没注意到。
需要在编译的graddle里设置采用JDK1.6:
1 2 3 4 5 |
compileOptions { targetCompatibility JavaVersion.VERSION_1_6 sourceCompatibility JavaVersion.VERSION_1_6 } |
3D对象投射到2D视图的几个参数
FOV (Field of view) 视场
操纵FOV属性值,可以使得3D显示对象呈现出近大远小的样子。FOV属性表达的是一个角度,0~180度之间,表示透视投影的力度。数值越大,应用到显示对象上在z轴上的畸变越强。较小的值会使得缩放尺度很小、物体在空间内的先后距离会很微小。较大的值会导致更大的畸变、使物体呈现出更大的移动。最大值为179.99999……度,会得到极度的鱼眼镜头效果。最小值为0.0000……1,0和180都是非法值。
Projection Center 投影中心
投影中心表示的是透视投影的消失点。是一个偏移值,追加在默认注册点也就是舞台左上角(0,0)上。 呈现在观察者越远处的物体,往消失点歪斜,直到最终消失。想象看无穷长的大厅,你放眼望去,会看到墙体的边缘交汇在远处视线尽头的消失点。 如果消失点在舞台中心,大厅的最远处就在中心点消失。默认值通常是舞台中心。如果需要最远景消失在画面右侧,就把投影中心设为舞台的最右侧一点坐标。
Focal length 焦距
焦距表示 原始视图点(0,0,0)和显示对象自身z轴位置两者间的距离。 长的焦距类似长焦距镜头,有一个狭窄的视图、物体间的距离被缩短。短的焦距类似广角镜头,让你得到一个很宽广的视图但是有很大的畸变。中等焦距大约接近人眼看世界。 往往焦距是在透视变换(如物体移动)时动态重计算的,但你可以主动设置它。
默认的透视投影参数
- FOV: 55
- perspectiveCenter: stagewidth/2, stageHeight/2
- focalLength: stageWidth/ 2 * ( cos(fieldOfView/2) / sin(fieldOfView/2) )
例如:当舞台大小500*500,设置以下值:
- fieldOfView: 55
- perspectiveCenter: 250,250
- focalLength: 480.24554443359375
游戏设计与人的六大需求
我花费了许多时间思考电子游戏,远不止从概念到完工。无论制作还是玩或参与社区讨论,我意识到有些事情我想分享出来。
游戏设计既是有机感性的又是结构理性的,随着我越是与过程和结果打交道,我越意识到,在游戏设计中有些隐藏的核心价值,这些价值紧密联系了人的六大需求。一个游戏越切合这些价值/需求,主观上讲就越是好游戏。
第一关: 大海捞针
你可能知道,有海量的电子游戏在很多平台上发行,数量与日俱增,且每过一天,找到你会喜爱的游戏变得越来越难。例如,在Steam平台上的游戏,按“特色”、“受欢迎”、“新上”和“最近更新”排序。更深入到搜索选项中,会有风格、用户关键词、评级、用户评级和独特功能和分类。这虽然好,但绝对没有好过直接告诉我我会喜爱哪款游戏。最好仔细猜测。
iOS6跳转到原生地图并导航的ANE
cn.flashj.ane.ios.OpenMap是一个iOS上的原生扩展,实现很简单的一件事情:跳转到系统自带的地图,并导航到某地。
提供2个方法:
- openMap.routeFromSourceToDest(source, dest);
从source导航到dest。 - openMap.routeToDest(dest);
从当前位置导航到dest。
其中,参数source、dest都是cn.flashj.ane.ios.MapItemVO,此类有三个字段:纬度、经度、地名。
使用例子: [ 阅读全文 ]
Adobe AIR打包用到外部sdk的ANE时报错
现象:
我们项目需要用到ANE扫二维码的功能,XCode里用ZBarSDK写好之后发布成ane,adt打包成ipa的时候报错如下:
Packaging failed!
Packaging error message:
Compilation failed while executing : ld64
Packaging output:
ld: warning: ignoring file /var/folders/l5/kql7svqx5j93vwg65tj3pt_c0000gn/T/8e0d5504-ffea-41da-a45b-22cfe260a197/libcn.flashj.ane.ios.QRScan.a, file was built for archive which is not the architecture being linked (armv7): /var/folders/l5/kql7svqx5j93vwg65tj3pt_c0000gn/T/8e0d5504-ffea-41da-a45b-22cfe260a197/libcn.flashj.ane.ios.QRScan.a
Undefined symbols for architecture armv7:
“_QRScanExtInitializer”, referenced from:
_g_com_adobe_air_fre_fmap in extensionglue.o
(maybe you meant: _QRScanExtInitializer_name)
“_QRScanExtFinalizer”, referenced from:
_g_com_adobe_air_fre_fmap in extensionglue.o
(maybe you meant: _QRScanExtFinalizer_name)
ld: symbol(s) not found for architecture armv7
StarlingMVC
StarlingMVC is good to me.
http://creativebottle.github.com/starlingMVC/
- Dependency Injection(DI)/Inversion of Control(IOC)
- View Mediation
- Event Handling
- Stays out of the way of your Starling game code
- Simple configuration
- Easily extended
- More utilities to help with your game code
Links about Feathers
Feathers是轻量级,易于定制皮肤和扩展的UI组件(适用于移动设备和桌面)。配合Starling用.
我近期项目用starling开发,时间比较紧,没有自己写一套配合starling的UI,正准备接下来研究一下,既然有现成的方案,就先研究下它好了.
- feathersui.com
- Github: github.com/joshtynjala/feathers/
- Doc: feathersui.com/documentation/
- 依赖as3-signals github.com/robertpenner/as3-signals /GTween/
Unity3D导入fbx丢失贴图
问题:
从3dsMax导出fbx给Unity用,总是会丢失贴图。尽管Unity导入fbx时会自动导入材质球,但是贴图文件都会变成空的,要重新一个一个贴图填进去,真是太浪费时间了。
解决方案:
3dsMax中模型和贴图采用统一命名,贴图文件拷贝到Unity项目中,然后再导入fbx,就会为自动创建的材质找到对应贴图了。
第八届Flash开发者大会-《移动开发,社交游戏与轻网游》
- 时间:2011年10月16日星期日
- 地点:北京市海淀区大钟寺东路9号京仪大酒店第一会议室
- 在线报名:http://wefdc8.51qiangzuo.com/
- 大会活动页面:http://www.wefdc.com/index.html
- Flash开发者大会微博:http://weibo.com/wefdc