Flash air 开发iOS游戏在苹果上架,能否热更新?

Flash air 开发iOS游戏在苹果上架,能否热更新?

这是我在知乎上的一个回答。原文地址:
http://www.zhihu.com/question/24847013/answer/29263899

我曾经多次被问到过这个问题。正好整理一下思路,免得以后忘了。

问:

游戏已经上架,以前的更新方案在苹果更新后,发现更新下来的swf不能正常读入,导致游戏无法进入。不知各位大神有没有什么方法解决。

答:

目前,在移动平台上想利用SWF热更新,只有 Android 能做到。 继续阅读Flash air 开发iOS游戏在苹果上架,能否热更新?

从 Actionscript 1.0 迁移到 Actionscript 3.0

从 Actionscript 1.0 迁移到 Actionscript 3.0

Migrate Actionscript 1.0 to Actionscript 3.0

这并不是一篇好几年前的老文章,而是我去年10月份在之乎上的一个回答,今天有知友回复让我看到这篇,于是把她转到自己的博客上来。

原文见这里:AS1.0/2.0 改写成 AS3.0 难吗?一款中型的flash游戏改写,大概需要多少时间和成本?

做为一个从AS1一路写到AS3的程序员,我来回答一下。

  • 首先需要声明的是,关于难不难,每个人有自己的判断标准,这个我不会回答。
  • 其次需要声明的是,我也无法回答大概需要多少时间和成本,但看完我的回答后,你应该能自己计算出来。

AS从1到2,其实没有什么本质的改变,AS2.0只是加入了一个似是而非的class关键字而已,最终编译成的字节码,还是一样的。

而AS3就完全不同,从FlashPlayer9(第一个支持AS3的Player)开始,FlashPlayer就内置了2套AVM虚拟机,AVM1针对AS1+2,AVM2针对AS3。AS3甚至专门加了一个类AVM1Movie来处理AS1+2的MC,看这个: AVM1Movie – Adobe ActionScript? 3 (AS3 ) API 参考 。我认为,即使说AS3是另外一门语言也不为过。 继续阅读从 Actionscript 1.0 迁移到 Actionscript 3.0

AS3.0监听视频的metaData和cuePoint时,使用了onMetaData()和onCuePoint()类AS2.0的形式,而没用addEventListener这种更”现代化”的形式,为什么?

这个问题是我在知乎上的一个回答:http://www.zhihu.com/question/20700892/answer/15902820


我猜想是历史原因。

AS提供的NetStream类比较特殊。它既支持本地Video对象播放,也支持基于HTTP的流媒体播放。最重要的,是它支持Adobe自家的Flash Media Server的实时流和点播流。

Flash Media Server(以下简称FMS)是一个重量级的产品,它在AS 1.0/2.0时代就推出了。FMS最初叫做Flash Communication Server(以下简称FCS),它当时是和(Flash MX/Flash MX 2004)|(Flash Player 6.0/7.0)|(AS1.0/2.0)配合使用的。 继续阅读AS3.0监听视频的metaData和cuePoint时,使用了onMetaData()和onCuePoint()类AS2.0的形式,而没用addEventListener这种更”现代化”的形式,为什么?

有哪些提高Actionscript执行效率的技巧?

这是我在知乎上的一个回答:http://www.zhihu.com/question/20653345/answer/15754680

  1. AS3代码层面,我写过和转载过几篇文章,很浅显,希望对你有帮助:
  2. 从开发习惯上入手,例如缓存Array.length的值、把除法尽量用乘法代替等等这种小技巧。就像@吴茜 说的,网上真的很多;
  3. 了解FlashPlayer的 执行模型 和显示列表机制。了解游戏中实现动画的几种不同的方法(例如位图引擎和显示列表的区别,如果加上Stage3D又怎样?),尽量少用现成的框架,能自己写就自己写,千万不要用Flex;专用的东西永远比通用的东西要更高效;
  4. 善用FlashBuilder提供的概要分析工具;善用Adobe提供的Adobe Scout等性能分析工具;利用Flash C++ Compiler编写更高效的代码;
  5. 从虚拟机层面进行优化,@吴茜 推荐的资料 Avm2虚拟机浅析与as3性能优化 很不错,建议详读。

ActionScript为什么默认使用Big Endian字节序?

一直不明白既然目前多数CPU内部都使用 Little Endian 字节序,为什么 ActionScript3 中的 ByteArray 默认使用 Big Endian 字节序。

看了下面的文章,大致明白了:

或许ActionScript是为了兼容TCP/IP协议的Big Endian字节序? 继续阅读ActionScript为什么默认使用Big Endian字节序?

【转】ColorMatrixFilter色彩矩阵滤镜

转自 蜗牛的博客

matrix是一个长度为4*5=20的数组,其构成如下所示:

 R  ,G,  B,  A, offset
[1,  0,  0,  0,  0]); // red
[0,  1,  0,  0,  0]); // green
[0,  0,  1,  0,  0]); // blue
[0,  0,  0,  1,  0]); // alpha

上面是matrix的初始状态。

下面我分先来分析一下其初始状态。

red通道的值:(1,0,0,0,0)表示,R通道的乘数是1(完全保留),别的道道的的乘数是0,(不加入别的通道的颜色),色彩偏移量off是0;

别的通道依次类推。

下面来做一些效果,增加对colorMatrixFilter的认识: 继续阅读【转】ColorMatrixFilter色彩矩阵滤镜

将当前目录下的所有as文件加入缓冲区列表

vim的缓冲区列表(buffer list)保存着打开过的文件集合。使用 :b filename 可以快速打开需要的文件,且支持文件名自动补全,为编辑提供方便。

如果所有源文件都加入到缓冲区列表中,在编辑源码的时候不就更方便了么?

使用 :badd 命令可以将一个文件加入到缓冲区,我写了3个函数来提供批量加入和文件搜索的功能:

  • GetFileList返回提供的路径(和子目录)下的所有as文件的列表;
  • EchoBaddList将提供的路径(和子目录)下的所有as文件输出成Vim支持的添加缓冲区列表语句,并输出到当前缓冲区中;使用这个函数,可以方便的编辑自己的Session文件;
  • BaddList则直接将提供的路径(和子目录)下的所有as文件加入到缓冲区列表。
    继续阅读将当前目录下的所有as文件加入缓冲区列表

Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系

2011-05-06更新:加入SWF SWC SWZ部分

2011-09-19更新:smithfox推荐了一篇英文的,比我的更详细:Versions in the Flash Platform


这篇文章本来是我在9ria上对网友的回复,但最近询问此类问题的网友越来越多,就整理了一下,增加了一些东西。原贴见这里

ActionScript

ActionScript通常简称为AS,它是Flash平台的语言。AS编写的程序,最终可以编译成SWF、SWC。SWF就是我们常说的Flash动画。但是现在SWF已经不仅仅是动画,而是RIA的载体。

ActionScript有3个版本,分别是1.0版(AS1),2.0版(AS2)和3.0版(AS3)。只有Flash Player 9及以上播放器才支持AS3编译的SWF。这三个版本的差别非常大,现在最流行的版本是AS3。 继续阅读Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系

【转】原来Tween缓冲是这么回事

转自:http://bbs.9ria.com/viewthread.php?tid=63977

Tween缓冲

Tween缓冲大家应该都不陌生,说白了就是从一起始位置逐渐移动到目标位置的过程,这个过程可以是加速移动,也可以是减速移动,这些不同的缓动方式就是Tween的各种ease。

Tween算法

概念知道了,了解一下Tween的算法对我们更好的使用Tween或者编写自己的Tween都是很有帮助的。

在缓动过程中,随着时间的推移,对象从起始位置开始逐渐向目标位置移动,我们假设移动的距离为disX,并将其作为y轴,时间t作为x轴,这样可以轻松的得到一条曲线,如下图:

在上图中我取了三个时间点ta、tb和tc,他们对于的移动的距离分别是da、db和dc,其中ta到tb与tb到tc之间的时间相同,但是很明显的可以看到db-da比dc-db小,也就是说相同的时间内,时间越靠后,对象移动的越快,实际上着就是Tween中的Cubic缓动模式,你可以在下面的SWF中看到它的效果。 继续阅读【转】原来Tween缓冲是这么回事

Alcon/De MonsterDebugger/Arthropod Flash Debugger简单评测

AlconDe MonsterDebuggerArthropod都是基于AIR的Debugger工具。今天有时间简单使用了一下这三个Debugger,下面是一些使用感受和选择建议。

首选:De MonsterDebugger

优点:

  • 显示正在运行的swf的显示列表
  • 实时更改显示对象的属性
  • 在Debugger中选择某个显示对象的时候,swf中该对象周边还会出现黄色边框
  • 可以筛选(筛选比搜索更好用)调试信息
  • 可以调整界面的显示,不显示不需要的界面
  • 有Monitor界面

缺点: 继续阅读Alcon/De MonsterDebugger/Arthropod Flash Debugger简单评测