`
baby69yy2000
  • 浏览: 183695 次
  • 性别: Icon_minigender_1
  • 来自: 自己输入城市...
社区版块
存档分类
最新评论

[转]12个优秀的Flash/ActionScript国际级学堂

    博客分类:
  • Art
阅读更多
本帖最后由 猫天猫地 于 2009-5-14 14:20 编辑

12个优秀的Flash/ActionScript国际级学堂

Adobe Flash是不错的东西,利用平滑的动作使简单的网页富有动态,如果你正在寻找优秀的 Flash 资源,那么这篇文章可以帮到你。
如何制作可爱的网站, Flash 绝对是其中一个重要的因素,这12个网站是应该好好放在收藏夹中的,因为里面的资源对提升我们的 Flash技能很有帮助,本文的每介绍一个网站,均会列出其三个最优秀的教程实例。
1. kirupa.com

kirupa.com在一个多项目的教程网站,除了优秀的Flash教程,还包括Silverlight, ASP.net, PHP, Photoshop,CSS等,精心的详细的教程将Flash制作分解到很详细的分块。里面Flash教程共分为7类,包括绘画基础,特殊效果,服务器端的Flash 和游戏开发。
教程实例:
Simple Page Transitions Creating and Animating Clouds Falling Text 2. gotoandlearn.com

有不少的朋友喜欢看是可视化的教程,然后按照视频教程的内容一步一步制作,如果你是这样的人,那么gotoandlearn.com是一个很不错的选择,在这里Lee Brimelow提供了免费的Flash视频教程。
教程实例:
  
ActionScript 3 Sound Basics Creating 3D Carousels Creating Flash Tooltips 3. gotoAndPlay()

gotoAndPlay()致力于为Flash游戏开发者提供资源,这里是一个由专业开发者组成的社区,有论坛、书籍及相关资源,当然也有针对Flash开发的教程和文章。相关资源可以从话题、专门知识和类型进行分类。
教程实例:
Developing a space shooter game Skeletal Animations How to protect SWFs from decompilers? 4. Adobe - Flash Developer Center

Adobe’s Flash Developer Center是一个以Flash开发者为中心的社区,在这里,我们可以找到关于Flash的教程,文章和相关资源。特别地,在ActionScript Technology Center还可以找到关于ActionScript的文章及相关资源。
教程实例:
Using ActionScript to pause and loop the timeline in Flash Drawing with the Pen tool Creating a 3D button animation for Flash 5. Flash Kit

Flash Kitj是其中一个最大和最古老的Flash社区,成员数量超过60万,在这里,我们可以很轻易就可以找到跟我们有共同兴趣的Flash开发者。这里主要有三个版块:论坛、免费资源、一个大型教程项目(有18个类别)。
教程实例:
Making movieclips point at the mouse Move a sprite with the keyboard How to use hitTest in a simple game 6. ActionScript.org

ActionScript.org是一个提供Flash, Flex, ActionScript相关资源和信息的网站,这里有一个相当活跃的论坛,一个名为ActionScript Library的资源库,可以提供700个对象的资源下载。
教程实例:
Drawing Shapes with AS3 Simple reflection effect with AS2 Physics in ActionScript 3.0 7. Flash and Math ActionScript 3 Tutorials

Flash and Math对AS3的教程进行了详细的收集,这里的资源包括基本概念到高级应用,所以可以满足不同层次的Flash开发者使用,这里也提供教程下载,包括原文件的下载。
教程实例:
Drag-and-Drop in Flash CS3 Tween Tricks in Flash CS3 and ActionScript 3 Simple 3D Drawing in Flash CS3 and ActionScript 3 8. Flash Tutorials on Pixel2Life

Pixel2Life,据该网站的自我推介,是“针对平面设计师,网站管理员和程序员最大的索引型网站”, 这里有超过40000条索引指南,通过这里的Flash Tutorials,我们可以找到许多教程的链接。
教程实例:
Creating a Basic Flash Website (AS3 Version) Actionscript 3 Timer Class Stars animation above the city 9. Flash Perfection

Flash Perfection是一个收集型号的网站,从不同的网站收集了丰富的Flash教程,经验和技巧,具有完善的23个类别帮助我们快速找到我们要找的信息。
教程实例:
Atmospheric Steam Optimizing your Flash SWFs Quick and Easy Zoom Effect in Flash 10. metah.ch

metah.ch有一些很强大的与Flash, ActionScript, Flex, and AIR相关的视频教程,我们还可以从中下载与视频具有关联性的文件,用于我们自己的设计项目上。
教程实例:
Introduction to Loop and Event in AS3 Connecting AS3 with a Database Interaction between AS3 and JavaScript 11. LukaMaras.com

LukaMaras.com 提供了详细的Flash教程和资源,旨在让大家学习Flash,这里还有一个小论坛,有超过3000名注册用户,可以谈笑Flash。
教程实例:
ActionScript drop-down menus How to make pixel buttons in Flash the easy way. How to make an amazing dynamic image gallery in Flash 8 12. Flashmagazine

Flashmagazine是一个提供Flash新闻,评论,资讯和资源的在线杂志,这里的教程版块也可以为Flash开发者提供一些优秀的教程。
教程实例:
How to make a custom AS3 preloader AS3 Photo gallery Rollover effect using masks 本文由Sonny编译:

Math对象,作为一门编程语言,进行数学计算是必不可少的。在数学计算中经常会使用到数学函数,如取绝对值、

开方、取整、求三角函数值等,还有一种重要的函数是随机函数。ActionScript将所有这些与数学有关

的方法、常数、三角函数以及随机数都集中到一个对象里面——Math对象。
Math对象是ActionScript的一块敲门砖,只有掌握了它,才能真正对ActionScript动画编程做到运用自

如。
1  Math对象的方法
1.1  Math.abs
Math对象中集合了许多常用数学函数。Math.abs就是用来计算一个数的绝对值,即一个数去掉正负符号

后的值。其用法如下:
x=Math.abs(-9);
或:
x=Math.abs(num1-num2);
11.1.2  Math.round
Math.round方法将一个浮点数四舍五入为最接近的整数,如:
trace(Math.round(9.4));
trace(Math.round(9.5));
trace(Math.round(-9.4));
trace(Math.round(-9.5));
trace(Math.round(-9.6));
输出窗口中将显示:
9、10、-9、-9、-10
11.1.3  Math.ceil、Math.floor
Math.ceil方法取比一个浮点数大且最接近的整数,Math.floor方法取比一个浮点数小且最接近的整数。

如:
trace(Math.ceil(9.1));
trace(Math.floor(9.1));
trace(Math.ceil(-9.1));
trace(Math.floor(-9.1));
输出窗口中将显示:
10、9、-9、-10

1.4  Math.min、Math.max
Math.min方法取两个数中较小的一个数,Math.max方法取两个数中较大的一个数,如:
trace(Math.min(9,);
trace(Math.max(9,);
输出窗口中显示:
8、9

1.5  Math.pow
Math.pow方法用来计算一个数的乘方,它包含两个参数,第1个参数是底数(要乘方的数),第2个参数

是幂(乘方数)。如计算5的3次方:
trace(Math.pow(5, 3));
输出窗口中显示:
125
Math.pow方法也可以计算一个数的开方,如计算125的开3次方:
trace(Math.pow(125, 1/3));
输出窗口中显示
5

1.6  Math.sqrt
除了用Math.pow计算一个数的开方,还可以使用Math.sqrt计算一个数的平方根,如计算64的平方根:
trace(Math.sqrt(64));
输出窗口中显示
8
它等同于:
trace(Math.pow(64, 1/2));

2  Math对象的常数
Math对象的常数有以下几个:
= Math.PI:圆周率(大约为3.141593)。
= Math.SQRT1_2:1/2的平方根的倒数(大约为0.707107)。
= Math.SQRT2:2的平方根(大约为1.414214)。
= Math.E:欧拉(Euler)常数,自然对数的底(大约为2.718282)。
= Math.LN2:2的自然对数(大约为0.693147)。
= Math.LN10:10的自然对数(大约为2.302585)。
= Math.LOG2E:e的以2为底的对数(大约为1.442695)。
= Math.LOG10E:e的以10为底的对数(大约为0.434294)。
其中Math.PI用得较多,如下面的脚本将弧度值arcdegree转换为角度值angledegree:
angledegree = arcdegree*(180/Math.PI);
下面的ActionScript将弧度1转换为角度:
arcdegree = 1;
angledegree = arcdegree*(180/Math.PI);
trace(angledegree);
输出窗口中显示:
57.2957795130823

3  三角函数
Math对象中的三角函数有:
= Math.sin:正弦
= Math.cos:余弦
= Math.tan:正切
= Math.asin:反正弦
= Math.acos:反余弦
= Math.atan:反正切
= Math.atan2:从x坐标轴到点的角度
三角函数在ActionScript中有着举足轻重的地位,它们在制作一些特效动画时将发挥重要的作用。
在程序语言中通常以x和y标记位置,但是在一个圆周上使用x和y来标记位置并不是很容易。三角函数在

处理与圆周相关的位置参数时很有效。如用某个圆的圆心位置为(x0,y0),半径为r,可以用

y0+r*Math.sin(0)表示该圆水平直径右端点的纵坐标,用x0+r*Math.cos(0)表示该圆水平直径右端点的

横坐标。如图11-1所示用正弦函数和余弦函数标出了一个圆周上4个点的坐标。


图11-1  用三角函数表示圆周上的点
如下所示的ActionScript使影片剪辑绕圆周运动:
onClipEvent (load) {
i = 0;
r = 150;
x0 = 275;
y0 = 200;
}
onClipEvent (enterFrame) {
i += 10;
this._x = x0+r*Math.cos(i/(180/Math.PI));
this._y = y0+r*Math.sin(i/(180/Math.PI));
}
此时的影片剪辑是沿顺时针方向转动的,如要让它沿相反方向转动,只需将i += 10改写成i -= 10即可


ActionScript中的三角函数都是按照弧度计算的。一个完整圆周的弧度数为2*Math.PI,大约是6.283185

,而一个圆周的角度数是360。如要在三角函数中使用角度数,需要将其除以180/Math.PI以转换为弧度

数。
在上面的脚本中,i的值是递增的,而并没有限定在0~360之间。这是因为正弦函数和余弦函数是定义在

负无穷~正无穷上的周期函数,它们的值是以360°为周期循环的。
11.4  字符串和数字的转换
在ActionScript中,字符串和数字之间可以相互转换。在很多时候,将字符串转换为数字或将数字转换

为字符串都是很有必要的。例如,在Flash中有一个变量名为n的输入文本框和一个按钮,按钮中的

ActionScript如下:
on (release) {
trace(n+7);
}
当在输入文本框中输入11,再单击按钮时,输出窗口将显示字符串“11”与字符串“7”相加的结果117

,而不是数字11与数字7相加的结果8。这是因为从输入文本框中获得的是字符串,当表达式中有字符串

和数字时,ActionScript优先考虑字符串,将数字转换为字符串后再进行字符串运算。
为了将字符串转换成数字,可以使用ActionScript提供的函数Number,如将上例所示的脚本改写成如下

所示:
on (release) {
trace(Number(n)+7);
}
当在输入文本框中输入11,再单击按钮时,输出窗口将显示结果18。
如果Number函数中的参数不能转换成数字,则返回结果NaN。
以“0x”开头的字符串将被解释为十六进制数。
对于布尔值,true将转换为1,false将转换为0。例如将上例所示的脚本改写成如下所示:
on (release) {
n = n>10;
trace(Number(n));
}
当输入的值小于等于10时,输出窗口中显示0;当输入的值大于10时,输出窗口中显示1。
除了Number函数以外,函数parseInt可以将字符串转换成整数,函数parseFloat可以将字符串转换为浮

点数。如将上例所示的脚本改写成如下所示:
on (release) {
trace(parseInt(n)+7);
trace(parseFloat(n)+7);
}
当在输入文本框中输入11.99,再单击按钮时,输出窗口中将显示18和18.99。
parseInt和parseFloat在处理字符串时比Number函数更专业一点,它们可以从字符串中取出能转换成数

字的最长字符串进行转换,而忽略后面不能转换成数字的字符串。如将上例的脚本改写成如下所示:
on (release) {
trace(Number(n)+7);
trace(parseInt(n)+7);
trace(parseFloat(n)+7);
}
当在输入文本框中输入11t7.9并单击按钮时,输出窗口中将显示
NaN、18、18
parseInt函数可以有两个参数,第2个参数在2~36之间,表示要转换的数字的基数,即进制数。如将二进

制数1101转换为十进制整数:
trace(parseInt(1101, 2));
输出窗口中显示13。
要将数字转换成字符串可以使用Number对象(动作面板的“对象”/“核心”目录)的toString方法。要

使用toString方法需要先创建一个Number对象,其用法如下:
myNumber = new Number(15);
trace(myNumber.toString(2));
trace(myNumber.toString(16));
toString中的参数与parseInt函数的第2个参数一样,都表示进制数。本例中的2和16分别表示将

myNumber转换为二进制数和16进制数。运行脚本,输出窗口中显示
1111
f
如果省略参数,默认为十进制。

5  随机数
随机数在Flash中的应用非常广泛。
在Flash 5以前的版本中,使用random函数获取一个近似的随机数,如random(10)随机返回0~9这10个整

数中的一个。但在Flash MX中推荐使用Math对象的random方法,即Math.random(),该方法返回一个大于

或等于0并且小于1的随机浮点数。
Math.random方法比random函数得到的结果更精确,但它并不能直接产生一个整数。我们可以使用别的办

法将Math.random方法产生的随机数转换为我们需要的整数,如要得到一个1~10之间的随机整数,可以使

用如下所示的ActionScript:
trace(Math.floor(Math.random()*10+1));
11.6  练习:下雪
打开文件snow.fla,这是一个利用attachMovie和Math.random方法制作的下雪效果,其中每一片雪花的

大小、方向各不相同,如图11-2所示。
[全屏欣赏]

图11-2  下雪特效
该动画中形状各异的雪花与Math.random函数密不可分,下面来看它的制作方法。
(1)在库面板中为snow影片剪辑创建链接,其链接标识符为snow,如图11-3所示。


图11-3  为影片剪辑添加链接
(2)将snow元件拖到场景中,选中该影片剪辑实例,在其中添加如下ActionScript:
onClipEvent (load) {
this._visible = false;
v0 = 3;                                   //速度
num = 50;                                //数量
vx = new Array();                          //记录水平速度的数组
vy = new Array();成                        //记录垂直速度的数组
for (var i = 1; i<=num; i++) {
_root.attachMovie("snow", "snow"+i, i);   //附加num个影片剪辑实例
scale = 100*Math.random()+50;          //随机设定实例大小
with (_root["snow"+i]) {                //with语句
  _xscale = scale;
  _yscale = scale;
  _x = 500*Math.random();           //随机出现在影片水平宽度范围
  _y = 400*Math.random();           //随机出现在影片垂直高度范围
  _rotation = 360*Math.random();      //随机旋转一个角度
  vx[i] = v0*Math.random()+v0;       //随机取得水平方向上的速度
  vy[i] = v0*Math.random()+v0;       //随机取得垂直方向上的速度
}
}
}
onClipEvent (enterFrame) {
for (var i = 1; i<=num; i++) {
with (_root["snow"+i]) {
  _x += vx[i];                      //在水平方向上运动
  _y += vy[i];                      //在垂直方向上运动
  if (_x<0) {                       //超出左边界,从右边界进入
   _x = 500;
  }
  if (_x>500) {                     //超出右边界,从左边界进入
   _x = 0;
  }
  if (_y>400) {                     //超出下边界,从上边界进入
   _y = 0;
  }
}
}
}
以上脚本除了用到数组、attachMovie、Math.random等知识外,还用到了with动作。with动作用来为一

组动作脚本指定一个对象,如本例用with动作指定对象_root["snow"+i],并在其后的大括号中对该对象

的多种属性进行修改,从而避免了为每一个属性重复指定相同的对象,使脚本更紧凑和更简化。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics