标签存档: ActionScript

[转]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的认识: 继续阅读 »

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

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

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

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

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

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

FlashIDE发展史

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。 继续阅读 »

[转]原来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中看到它的效果。 继续阅读 »

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

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

首选:De MonsterDebugger

优点:

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

缺点: 继续阅读 »

[译]20个不能错过的ActionScript类库

本文译自20 Flash Resources and Tools You’ll Want

原文比较老了,所以里面很多东西我改了。

  1. TweenLite 最快的补间动画引擎。看这个测试。仅3K大小,可用于AS3和 AS2。 滤镜看这里:TweenFilterLite 引擎。
  2. Papervision3D 最流行的3D引擎。
  3. Away3D另一个3D引擎。查看范例
  4. WOW Engine AS3 3D 物理引擎。与 Papervision3D 或者 Away3D配合使用不错。
  5. 继续阅读 »

在Flex中实现聊天表情图片支持-实战篇

2011年6月17日更新:有网友说

SDK4.5下编译报错 1119: 访问可能未定义的属性 textFlow (通过 static 类型 spark.core:IEditableText 引用)。 TextChat.mxml /TextChat/src 第 94 行

问题的原因,在于SDK4.5将TextInput和TextArea的外观部件textDisplay的类型从原来的RichEditableText改为了IEditableText,因此无法得到textFlow属性。这是为了适应Mobile设备。在Spark主题下,它是 RichEditableText,而在Mobile主题下,它是StyleableTextField。

我解决的办法是强制将IEditableText转换成RichEditableText(见TextChat.mxml第95,100行)。这在Spark主题下当然是没问题的,但这并非是最好的办法。现在的源码是可以正常在SDK4和SDK4.5下编译的,请重新下载。

另外,经常有网友问到下载的压缩包中是一个FXP文件,这个该如何处理。其实这个问题Google一下自然有答案,做Flex,居然不知道FXP是什么,而且随手Google也不愿意做,我就只能鄙视你一下了。为了避免大家的麻烦,新提供的源码中增加了编译好的swf方便大家看效果,同时也放弃了FXP格式。我现在采用的是ANT+SDK编译,所以不要问我怎么把项目导入Flash Builder。

2010年10月7日更新:很多网友反应在SDK4正式版中,即使修改了源码也用不了,于是就顺手改了一下。现在的源码基于SDK4.1正式版,删除了一些原来beta版的时候用来解决beta版bug的代码,并加入了切分字符串的功能。也就是说,如果先输入文字,然后将输入点置于文字中再插入图片,图片会自动将文字分开。唉——转眼间这个源码发布一年了,时间过得真快啊……
顺便说一句:后来我又做了一个魔法表情功能,可以看这里

2009年10月29日更新:今天发现,有几个问题,Flash Builder beta2自带的SDK已经解决了(下面标出了),看来beta确实是不能用于正式产品啊……

2009年10月8日更新:Flash Builder beta 2发布后,spark组件中有些类的名称修改了,比如TextFilter改为TextConverter,SimpleText改为Label,TextArea.textview.textFlow改为TextArea.textFlow……因此如果使用beta2,那么下面的源码可能不会编译通过,请自行修改。


我发布“在Flex中实现聊天表情图片支持-资料篇”后,便有许多朋友找我要那个范例的源码。我在文章中就已提过那范例是从网上down来,并非我所做,自然没有源码。要源码,用X思,你懂的……

那好吧,源码来了。

继续阅读 »

在Flex中实现聊天表情图片支持-资料篇

2011年8月24日09:44:35 更新:重新找到了基于riaidea的TextField的图文混排组件源码,见作者博客

这个组件在对文本进行滚动的时候占用CPU较大,我在30行文本+少量表情滚动的时候,CPU瞬间可达30%以上(AMD羿龙II三核),因此在性能较差的机器上可能感觉滚动会卡。综合目前Flash Player 10的市占率90%以上来考虑,应该使用TLF来开发聊天表情支持功能(其实TLF大量文本滚动也会卡的,但比这个要好些)。见在Flex中实现聊天表情图片支持-实战篇

2009年10月9日11:09:14 更新:增加riaidea的范例,(riaidea的作者自行关闭了googlecode上的开源项目,因此riaidea的源码不能下载了,我也没有源码

2009年9月16日20:34:30 更新:在Flex中实现聊天表情图片支持-实战篇

2009年8月21日09:36:19 更新:Flash Text Engine、Text Layout Framework在Flex、Flash中的实现


仔细研究了一下Flex支持表情图片,主要有下面三种方法:

  1. 使用TextArea,或直接使用TextField的html支持功能,在html中使用<img>标签嵌入表情图片文件。但这样做有两个问题,一是图片文件载入较慢;二是不容易控制载入的图片在文本中的“流向”。虽然可以使用getImageReference获取对图片的引用,但处理起来也比较费力。
  2. 将文本中需要插入图像的地方留出空白空间,获取空白空间的位置,并使用图像替代。这种方法的缺点在于每次更新文字内容的时候,所有的图片都要重排位置,对性能有一定影响,尤其是文本和图像比较多的情况下。
  3. 使用Flash Player 10提供的flash.text.engine(简称FTE)提供的高级功能进行处理,具体是使用GraphicElement类,这无疑是更好的方法。Adobe提供的Text Layout Framework(简称TLF)就是架设FTE的基础之上的。

下面是一些我搜集的资料,为后面的实战做个记录:
继续阅读 »

在关闭AIR程序窗口前显示Alert

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
< ?xml version="1.0" encoding="utf-8"?>
<mx:windowedapplication xmlns:mx="http://www.adobe.com/2006/mxml" 
						layout="vertical" showStatusBar="false"
						closing="closeHandler(event)">
	<mx:script>
		< ![CDATA[
			import org.zengrong.utils.Dialog;
			private function closeHandler(evt:Event):void
			{
				trace(evt.toString());
				evt.preventDefault();
				Dialog.confirm('确定退出?', _close);
			}
 
			private function _close($yes:Boolean):void
			{
				if($yes) this.nativeApplication.exit();
			}
 
		]]>
	</mx:script>	
</mx:windowedapplication>

继续阅读 »

Flash Player 10中关于TextField的textInput与change事件行为的改变

偶尔发现原来写的打字测试有问题了,仔细研究了一下,发现是FlashPlayer的原因。

打字游戏中,对文字输入正确与否的判断,我采用的是TextField的textInput事件和change事件。问题就出在这里:将FlashPlayer升级到10以后,这两个事件的行为发生了改变。

在FlashPlaye r10以前,如果在TextField中输入整句的文字,文字有多少个,textInput事件和change事件就会发生多少次。而对于FlashPlayer来说,则是不论文字有多少个,只要是一次输入的,就只会发生一次。这种情况对于英文来说倒是无所谓,但对于中文来讲,由于常用的是词语输入,就会有很大影响。看下面的代码:
继续阅读 »