编程的乐趣之Flash ActionScript 篇
EmilMatthew@126.com 06/11/08
一些很巧的机会,我在编程之初学习了Flash,并接触了ActionScript。自从我用AS编出了第一个有意思的图形小程序后,我便被在用AS编程过程中“创造些什么”的乐趣所深深吸引,不断的在用Flash编一些实现我的某个想法和意图的小程序。在我编程学习道路上,我有三分之一的程序都是用AS写的,这么美妙的感受一直伴随着我在实现自己小小梦想的道路上前行,也必定会延续下去。
04年2-6月,我正式开始学习用AS在Flash中编程,起初用的Flash版本是5。我看的是一本中国青年出版社的很厚但很实用的书(《FLASH 5动感世界》何东隆,李美真编著),虽然这本书的内容在当时已经陈旧,但是对于初学Flash编程的我,的确算是一位非常好的“指路人”了。不过,当我把自己写的东西贴到网上让人看看的时候,被别人笑话用的语法早已过时,于是,我开始学习Flash MX.(当时我的VB编程已较熟,C语言亦刚刚起步)
04年7-8月,我买了Robert Penner《Flash MX 编程创意与实现》,这本书无疑对我用AS的编程能力的提升有了巨大的促进作用。其实,这本书中所阐述的技术方面的内容我并没有学太多,因为AS的脚本字典中大部分也都有;最为关键的是,我通过这本书,我学会了如何用编程,去合理的表达自己的编程意图与想法,这方面的能力提升,就不单单是一个AS的语言能力了,而是程序设计的整体的思考和把握能力的。所以说,Robert 这本书,对我来说,授我以“渔”的作用更大些。由于我很喜欢力学,于是就用Flash编了许多关于运动,能量方面的简单AS应用,从当时来说,还是很有成就感的。当时,我写一篇关于跟踪子弹算法的改进设计的小文章(用向量),贴到Flash8上后发现反响很好,短短几天内就有两千多人浏览(被Flash8选入网上教程),从此,我写文章贴到网上和大家分享的好习惯就一直保持着。
子弹的连发控制(04年8月)
七球互碰(04年8月)
http://emilmatthew1984.googlepages.com/fExp04_08Bound_Brick.swf
木块与木框(04年8月)
04年9-12月,这段时间进展较缓,主要编了一个碰砖块的小游戏和一个富含AS效果的动画------<Flash的秘密>,12月份,翻译了一篇AS2的飞机游戏的文章。
小游戏---碰砖块(04年9月)
http://emilmatthew1984.googlepages.com/fExp04_12SecretOfFlash.swf
Flash 的秘密 (04年11月)
05年1-3月,主要精力放在对ActionScript2.0 语言机制的研究上,由于我在同时期,C++和Java语言都已掌握,所以,对于AS2.0 面向对象的语言机制的把握上是较为完整和深入的。当时,我准备办一个专门介绍ActionScript2.0 应用的网站,由于时间和精力问题,没有最终公开,其中,有一份ActionScript2.0语言研究报告,一直没有公开,其中的一些AS2语言OOP方面特性的测试,还是非常独特和有见解的。(主要是从Java,C++面向对象的机制进行出发来进行比较的)
http://www.newdreamworks.com/emilmatthew/AS2Forward/index.htm
个人网站AS2Forwarding (未公开)
http://www.newdreamworks.com/emilmatthew/AS2Forward/Features_Grammer/AS2GrammerIndex.htm
尚未整理完成但较能体现我AS2研究水平的文章--- ActionScript2.0语法研究报告
05年4-6月,在对AS2语言有较为深入的了解后,做了一个较大工程------初级物理现象摸拟系统。其中:包、接口、继承、对象组合等OOP技术被熟练使用,并使用了一个设计模式------“简单工厂模式”。而在AS2的应用上,则使用了动态创建V2Commponent技术,并行成了自己的Flash编程风格,主场景中仅用#include ”main.as” ,所有的脚本全都在Flash环境外编制,修改方便,Coding感觉良好。在我个人整体的编程能力上,对问题的思考也逐渐从“某个语言特型化的方法”向“求解问题抽象思路上”靠拢,到了特定的语言上,再用特定的方法。(C语言已较熟,开始尝试算法及数值分析程序的编制)
http://emilmatthew1984.googlepages.com/fExp05_05PhyStiSys.swf
初级物理现象摸拟系统(05年4-5月)
相关源码:http://www.newdreamworks.com/emilmatthew/MyFlashExp/PhySti.rar
05年7月初,给学院的科协做了一个网站,用到了一些Flash技术,如加载外部文本的Flash新闻阅读器,加载XML的Flash浮动新闻板等。(可惜最终没有真正的公开运作起来。)
http://www.newdreamworks.com/emilmatthew/KeXieSite/index.htm
HHU计信科协网(独立制作)
http://www.newdreamworks.com/emilmatthew/KeXieSite/programTech/gameDesign/snake0/index.htm
网站小组件---Flash新闻提取器(txt文本提取技术)
http://www.newdreamworks.com/emilmatthew/KeXieSite/computerScience/index.htm
网站小组件--专栏展示板
05年7月-9月,参加数学建模培训及比赛,Flash方面没有进展。其间,使用C语言、Matlab编制了不少的程序,数模比赛最终全国二等奖。
05年9月-Now:
基于AS2实现的数据结构与算法可视化:
[AS2,数据结构]队列的实现:
http://blog.csdn.net/emilmatthew/archive/2005/09/06/472568.aspx
[AS2,数据结构]栈的实现
http://blog.csdn.net/emilmatthew/archive/2005/10/03/494692.aspx
[AS2,算法可视化]人走迷宫算法的可视化实现.
http://blog.csdn.net/EmilMatthew/archive/2005/10/11/499501.aspx
分形几何:
[分形几何]叩开分形几何这扇门
http://blog.csdn.net/emilmatthew/archive/2005/10/19/508890.aspx
[分形几何]IFS系统的实现.
http://blog.csdn.net/EmilMatthew/archive/2005/11/15/530264.aspx
[分形几何,AS2]L系统编程的实现
http://blog.csdn.net/EmilMatthew/archive/2005/11/15/529867.aspx
[分形]L系统[2]------Hilbert曲线的绘制
http://blog.csdn.net/emilmatthew/archive/2006/02/13/598243.aspx
效果:
http://www.newdreamworks.com/emilmatthew/MyFlashExp/06_02Hilbert/hilbertShow.html
图形学入门:
叩开3D编程这扇门
http://blog.csdn.net/EmilMatthew/archive/2006/01/22/586472.aspx
效果:
http://www.newdreamworks.com/emilmatthew/MyFlashExp/0603open3d/rotateY.html
三维粒子系统在AS2中的实现
http://blog.csdn.net/EmilMatthew/archive/2006/05/03/707354.aspx
效果:
http://www.newdreamworks.com/emilmatthew/MyFlashExp/0605_3DParticles/test.html
人工智能入门:
1.1 启发式搜索算法引论------A*算法理论与实践
http://blog.csdn.net/emilmatthew/archive/2006/10/17/1338808.aspx
1.2 A*算法最优解提取算法
http://blog.csdn.net/EmilMatthew/archive/2006/10/31/1359172.aspx
其它AS2的应用文章:
颜色间的简易插值
http://blog.csdn.net/EmilMatthew/archive/2006/05/13/727036.aspx
飞机躲避小游戏---是男人就撑100秒的制作
http://blog.csdn.net/emilmatthew/archive/2006/03/25/638541.aspx
[计算机模拟]元胞自动机[CA]初探---“生命游戏”的实现
http://blog.csdn.net/EmilMatthew/archive/2005/10/26/516928.aspx
[Socket技术运用]Java和Flash通讯
http://blog.csdn.net/EmilMatthew/archive/2005/10/24/514327.aspx
当前的进展:
1. Flash的与ASP技术的连合使用的网上电子书店。(于11月13日完成测试版)
无音乐版本(500KB左右)
http://www.newdreamworks.com/emilmatthew/ebookstore.html
带结尾音乐版本( 1 M 左右)
http://www.newdreamworks.com/emilmatthew/ebookstore2.html
2. 一个基于Flash的基本三维引擎系统----实现Flash中基本三维互动漫游。
基于线框图的简易第三视角漫游:
上/下键:前进/后退 左/右键:左右平行移动
数字键盘上/下键:上/下垂直移动
数学键盘左/右键:摄象机绕物体顺时针/逆时针旋转
3. Flash8 新特性及AS3语言的学习与研究。
4. 无限制的更多美妙的创意与应用… …
我非常希望能从事与Flash相关的开发工作,我将以提升客户端上网的交互性作为自己
最大的工作目标,用我的能力、实干与创意带给人们更多前所未有的惊喜感受。希望有伯乐能相中我这匹在Flash开发必定大有作为的良马。