貘良了 发表于 2009-12-2 21:53:35

一切由hello world开始

Flash已经步入了新时代,Actionscript3已经与Flash 8以前用的Actionscript2有本质的不同,面向对象的,具有业界标准素质的编程语言。

看到某些人还不知道如何开始。那就来个简单的hello world吧。

以下先说明下,安装不用说了,安装Flash cs3后

1.新建一个Actionscript文件
输入代码

package
{
    import flash.display.Sprite;
   
    public class HelloWorld extends Sprite
    {
      public function HelloWorld()
      {
            trace("Hello World Flash");
      }
    }
}
保存为HelloWorld.as

2,新建一个Flash(选Actionscript3的)之后保存为任意名字的fla格式,但是要跟HelloWorld.as保存在同一目录。

3.点舞台下方的属性面板,选择“文档类”输入框,里面写入HelloWorld

4.Ctrl+Enter组合键,就会编译fla格式的Flash文件和HelloWorld.as

此时新弹出一个空白的flash窗口和一个输出面板,面板写着“Hello World Flash”

貘良了 发表于 2009-12-3 09:24:49

开始了第一步,接下来可以去下载flash的帮助文档。见“工具资源下载帖”
然后如果你看懂了很多关于AS3的基础知识。
就可以试试去adobe官网下载sample来看看。

http://www.adobe.com/devnet/flash/?view=samples


再进一步就可以找点专业人士写过的书籍来看,例如下面这本。
http://www.riabook.cn/upload/foundation_actionscript3_animation.jpg

原书名为《Actionscript 3.0 Animation -making things move》,由webstudio翻译的书名:《Flash Actionscript 3.0 动画教程》,翻译的质量还行,没有光盘,代码要自己去网上下载,书也不给个下载地址,原英文书下载:http://www.riabook.cn/en_book/foundation_actionscript_3_animation_making_things_move.htm
最下面有源文件的下载地址!其原作者Keith Peters 大家有应该听说过!写过《ActionScript 3.0 Cookbook中文版》这本书也有中文版的出版!

貘良了 发表于 2009-12-4 10:36:30

给个华丽的Flash CS4版本,必须用Flash Player 10播放器开的hello world粒子效果加强版
http://dl.dropbox.com/u/2877500/HelloSpace.swf




package {
    import flash.display.*;
    import flash.events.Event;
    import flash.geom.*;
    import flash.text.*;
    import flash.utils.setInterval;
   
   
    public class HelloWorld extends Sprite{
      private static const SIZE:Number = 475;
      private static const R:Number = 300;
      private static const HR:Number = R / 2;
      private var particles:Vector.<Number> = new Vector.<Number>();
      private var letterPoints:Vector.<Number> = new Vector.<Number>();
      private var colors:Vector.<uint> = new Vector.<uint>();

      
      private var canvasGlow:BitmapData;

      
      private var mtx:Matrix = new Matrix(0.25, 0, 0, 0.25);

      public function HelloWorld()
      {
            stage.scaleMode = "noScale";
            stage.align = "TL";

            
            var bmd:BitmapData = createBitmapData("HelloWorld");
            initParticles(bmd);

         
            var canvas:BitmapData = new BitmapData(SIZE, SIZE, false, 0x000000);
            addChild(new Bitmap(canvas));

            
            var uvts:Vector.<Number> = new Vector.<Number>();
            var particles2:Vector.<Number> = new Vector.<Number>();
            var mtx3d:Matrix3D = new Matrix3D();

         
            var proj:PerspectiveProjection = new PerspectiveProjection();
            proj.fieldOfView = 90;
            var projMat:Matrix3D = proj.toMatrix3D();

         
            canvasGlow = new BitmapData(SIZE / 4, SIZE / 4, false, 0x000000);
            var bmp:Bitmap = new Bitmap(canvasGlow, PixelSnapping.NEVER, true);
            bmp.scaleX = bmp.scaleY = 4;
            bmp.smoothing = true;
            bmp.blendMode = BlendMode.ADD;
            addChild(bmp);

         
            var counter:int = 0;
            var moveCounter:int = 0;
            var xysRandom:Vector.<Number> = new Vector.<Number>();
            var xys:Vector.<Number> = new Vector.<Number>(letterPoints.length);
            var f:Boolean = false;

      
            addEventListener("enterFrame", function(event:Event):void{
               
                mtx3d.identity();
                mtx3d.appendRotation(counter, Vector3D.Y_AXIS);
                mtx3d.appendRotation(15, Vector3D.X_AXIS);
                mtx3d.appendTranslation(0, 0, SIZE / 2);
                mtx3d.transformVectors(particles, particles2);

      
                Utils3D.projectVectors(projMat, particles2, xysRandom, uvts);

               
                for (var i:int = 0; i < xysRandom.length; i++){
                  if (i < moveCounter * 2){
                        xys += (letterPoints - xys) * .13;
                  } else {
                        xys += (xysRandom - xys) * .12;
                  }
                }

               
                moveCounter = (f ? moveCounter + 100 : 0);

            
                canvas.lock();
                canvas.fillRect(canvas.rect, 0x000000);
                for (var i:int = 0; i < xys.length / 2; i++){
                  canvas.setPixel32(xys + SIZE / 2, xys + SIZE / 2, colors);
                }
                canvas.unlock();

               
                canvasGlow.fillRect(canvasGlow.rect, 0x000000);
                canvasGlow.draw(canvas, mtx);

                counter++;
            });

            
            setInterval(function():void{ f = !f; }, 4000);
      }

      private static function createBitmapData(letters:String):BitmapData{
            var fmt:TextFormat = new TextFormat();
            fmt.size = 50;

            var tf:TextField = new TextField();
            tf.defaultTextFormat = fmt;
            tf.autoSize = "left";
            tf.textColor = 0xffffff;
            tf.text = letters;

            var bmd:BitmapData = new BitmapData(tf.textWidth, tf.textHeight, false, 0x000000);
            var mtx:Matrix = new Matrix();
            bmd.draw(tf, mtx);

            return bmd;
      }

      private function initParticles(bmd:BitmapData):void{
            for (var yy:int = 0; yy < bmd.height; yy++){
                for (var xx:int = 0; xx < bmd.width; xx++){
                  var c:uint = bmd.getPixel(xx, yy);
                  if (c != 0){
                        letterPoints.push(xx - 220, yy - 20);
                        particles.push(R * Math.random() - HR, R * Math.random() - HR, R * Math.random() - HR);
                        colors.push(c);
                  }
                }
            }
      }
    }
}

貘良了 发表于 2009-12-13 11:56:00

羊书来了。《making things move》看完后想继续深造的话,可以参考这本书。


通过此书你可以学会:
在运行时使用绘图API来创建向量线条和图形,以及如何在3D对象里绘图;
使用强大的BitmapData类处理图像,图像的每一个通道和每一点像素;
使用新的Pixel Bender技术来创建用于位图滤镜的ActionScript着色器、混合模式和填充模式;
在图像、文本和视频上应用动态的、可复用的效果,同时包括网络摄像头和麦克风的可视化;
结合开源的效果和动画类库,使得图像效果更加丰富多彩。


书籍大纲:
绘图API;
滤镜和混合模式;
位图与BitmapData类;
高级的位图处理;
Pixel Bender和着色器;
ActionScript的3D应用;
使用动画和效果类库;
强大的动画效果;
文本效果;
声音效果;
声音可视化;
交互效果;
-----------------------------------------------------------------------------
书籍下载地址http://download.csdn.net/source/1819236
                            http://dl.dropbox.com/u/2877500/FriendsofED%2B-%2BFoundation%2BActionScript%2B3%5B1%5D.0%2BImage%2BEffects%2B%282009%29.pdf

源码下载地址http://www.friendsofed.com/downloads/9781430218715/Fdn_AS3_Image_Effects.zip

as765654471 发表于 2010-5-17 23:31:56

老大 我看不懂 能不能请你加我的QQ 解说下

liao2002441 发表于 2010-12-12 20:39:42

非常感谢!LZ辛苦了还有貌似实例下载地址失效了,麻烦修复一下
页: [1]
查看完整版本: 一切由hello world开始