求一个简单的flash动画 并有详细步奏

作者&投稿:禤骆 (若有异议请与网页底部的电邮联系)
求一个简单的FLASH动画,要有制作步骤,急用在线等~

先做太阳、地球、月亮的自转3个电影剪辑,再用引导线做月亮绕地球转的电影剪辑,最后做地球(含月亮)的电影剪辑绕太阳转。

操作方法:
1、首先,我们打开软件FLASH8,点击创建一个FLASH文档。

2、首先点击图层一的第一帧,然后点击矩形工具,在场所中绘制一个矩形。

3、再选中图层一的第30帧,右单击插入空白关键帧,在空白关键帧内绘制一个圆。绘制圆的工具已经用红笔画出。

4、我们单击下面的用红框画出的部分,单击图层一的第一帧并选择创建形状补间动画。

5、我们再点击用红框圈出的位置,创建一个新的图层。

6、选定图层二的第一帧,点击那个A,在场所中输入一些字。(A 是文字工具。自己可以选择字号和颜色以及字体。)

7、然后点击图层二的第三十帧,点击插入帧。(帧中是不可以储存内容的,但是它可以延续前面的关键帧。)

8、按 Ctrl+enter,测试影片。这时,自己制作的小动画就成功了。
拓展资料:关键帧和空白关键帧的区别:
1、关键帧可以储存内容,也可以延续前面的帧;
2、空白关键帧好像是一张新的不透明的画布,可以储存内容,但是在这一空白关键帧中,所有之前的帧全部被遮盖。

1,新建fla文件,选as3.0版本,保存为:象素射击.fla

制作素材 

选一张背景图,转换成元件,as连接命名为:BackImage

绘制以下角色:

并将它们转换成元件放在库中,分别as连接命名为EnemyImage,PlayerImage,MissileImage

 代表:敌机,玩家,子弹

制作爆炸元件,as连接符命名为:ExplosionImage

第3帧与第5帧放大效果的两张图形成爆炸效果,第7帧输入脚本:stop();

 

在公用库的声音中找两个声音,分别as连接名为:Explode 和  Shoot

代表爆炸声和发射子弹声音。

 

回到舞台的属性面板,类______输入:game

 

2,新建脚本文件:game.as 直接复制就能用,慢慢读懂它。

将game.as与象素射击.fla放在同一个目录下,Ctrl+Enter测试影片

脚本文件内容如下:

package 

{//package

 import flash.display.MovieClip;//影片剪辑包

 import flash.events.Event;//事件包

 import flash.events.MouseEvent;//鼠标事件包

 import flash.display.*;//显示包

 import flash.events.*;//事件包

 import flash.geom.Rectangle;//形状包

 import flash.media.Sound;//声音

 import flash.text.*;//文字包

 //public公有 private私有

 public class game extends flash.display.MovieClip//声明game包

 {//game

  public static const STATE_INIT:int = 10;//定义常量对象STATE_INIT=10

  public static const STATE_START_PLAYER:int = 20;//定义常量对象

  public static const STATE_PLAY_GAME:int = 30;//定义常量对象

  public static const STATE_REMOVE_PLAYER:int = 40;//定义常量对象

  public static const STATE_END_GAME:int = 50;//定义常量对象

  public var gameState:int = 0;//定义变量对象

  public var score:int = 0;//定义变量对象

  public var chances:int = 0;//定义变量对象

  public var bg:MovieClip;//定义影片剪辑对象

  public var enemies:Array;//定义数组对象

  public var missiles:Array;//定义数组对象

 

  public var explosions:Array;//定义数组对象

  public var player:MovieClip;//定义影片剪辑对象

  public var level:Number = 0;//定义变量对象

  public var scoreLabel:TextField = new TextField  ;//定义文本对象

  public var levelLabel:TextField = new TextField  ;//定义文本对象

  public var chancesLabel:TextField = new TextField  ;//定义文本对象

  public var scoreText:TextField = new TextField  ;//定义文本对象

  public var levelText:TextField = new TextField  ;//定义文本对象

  public var chancesText:TextField = new TextField  ;//定义文本对象

  public const SCOREBOARD_Y:Number = 5;//定义数值对象

  public function game()//声明公有函数game()

  {//game

   addEventListener(Event.ENTER_FRAME,gameLoop);//事件:一直执行, 函数:gameLoop

   bg = new BackImage  ;//背景 = 新 背景图

   addChild(bg);//添加 影片剪辑 bg

   scoreLabel.text = "Score:";//分数标签的文字="Score:"

   levelLabel.text = "Level:";//等级标签的文字=“Level:”

   chancesLabel.text = "Ships:";//机会标签的文字="Ships:"

   scoreText.text = "0";//分数文本框的文字=“0”;初始值

   levelText.text = "1";//等级文本框的文字=“1”;初始值

   chancesText.text = "0";//机会文本框的文字=“0”;初始值

   scoreLabel.y = SCOREBOARD_Y;//分数标签的y坐标

   levelLabel.y = SCOREBOARD_Y;//等级标签的y坐标

   chancesLabel.y = SCOREBOARD_Y;//机会标签的y坐标

   scoreText.y = SCOREBOARD_Y;//分数文本框的y坐标

   levelText.y = SCOREBOARD_Y;//等级文本框的y坐标

   chancesText.y = SCOREBOARD_Y;//机会文本框的y坐标

   scoreLabel.x = 5;//分数标签的x坐标

   scoreText.x = 50;//分数文本框的x坐标

 

   chancesLabel.x = 105;//机会标签的x坐标

   chancesText.x = 155;//机会文本框的x坐标

   levelLabel.x = 205;//机会标签的x坐标

   levelText.x = 260;//机会文本框的x坐标

   scoreLabel.textColor = 0xFF0000;//分数标签的颜色

   scoreText.textColor = 0xFFFFFF;//分数文本框的颜色

   levelLabel.textColor = 0xFF0000;//等级标签的颜色

   levelText.textColor = 0xFFFFFF;//等级文本框的颜色

   chancesLabel.textColor = 0xFF0000;//机会标签的颜色

   chancesText.textColor = 0xFFFFFF;//机会文本框的颜色

   addChild(scoreLabel);//添加分数标签影片剪辑

   addChild(levelLabel);//添加等级标签影片剪辑

   addChild(chancesLabel);//添加机会标签影片剪辑

   addChild(scoreText);//添加分数文本框影片剪辑

   addChild(levelText);//添加等级文本框影片剪辑

   addChild(chancesText);//添加机会文本框影片剪辑

   gameState = STATE_INIT;//游戏状态变量=STATE_INIT常量

  }

  public function gameLoop(e:Event)//gameLoop函数

  {

   switch (gameState)//游戏状态条件筛选

   {

    case STATE_INIT ://STATE_INIT 初始状态

     initGame();//调用initGame函数

     break;//跳出循环

    case STATE_START_PLAYER ://开始玩家状态

     startPlayer();//调用开始玩家函数

     break;//跳出循环

    case STATE_PLAY_GAME ://玩游戏状态

     playGame();//调用玩游戏函数

     break;//跳出循环

    case STATE_REMOVE_PLAYER ://消去玩家状态

     removePlayer();//调用消去玩家函数

     break;//跳出循环

    case STATE_END_GAME ://结束状态

     break;//跳出循环

   }

  }

  public function initGame()//初始状态函数

  {

   stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDownEvent);//场景加载帧听鼠标事件,执行鼠标按下事件函数

   score = 0;//分数=0

   chances = 3;//机会=3

   enemies = new Array  ;//敌人=新数组

   missiles = new Array  ;//子弹=新数组

   explosions = new Array  ;//爆炸=新数组

   level = 1;//等级=1

   levelText.text = level.toString();//等级文本框的文本=等级转换成文本

   player = new PlayerImage  ;//玩家=新 玩家图片

   gameState = STATE_START_PLAYER;//游戏状态:开始玩家

  }

  public function startPlayer()//开始玩家函数

  {

   addChild(player);//添加玩家影片剪辑

   player.startDrag(true,new Rectangle(0,365,550,365));//玩家移动范围

   gameState = STATE_PLAY_GAME;//游戏状态=玩游戏状态

  }

  public function removePlayer()//消去玩家函数

  {

   for (var i:int = enemies.length - 1; i >= 0; i--)//变量i从敌人数组长度循环到0

   {

 

    removeEnemy(i);//执行移除敌人函数

   }

   for (i = missiles.length - 1; i >= 0; i--)//变量i从子弹数组长度循环到0

   {

    removeMissile(i);//执行移除子弹函数

   }

   removeChild(player);//移除玩家影片剪辑

   gameState = STATE_START_PLAYER;//游戏状态转到开始游戏状态

  }

  public function playGame()//玩游戏函数

  {

   makeEnemies();//执行制造敌人函数

   moveEnemies();//执行移动敌人函数

   testCollisions();//执行

   testForEnd();//执行

  }

  public function makeEnemies()//制造敌人函数

  {

   var chance:int = Math.floor(Math.random() * 100);//定义随机数0-100

   var tempEnemy:MovieClip;//定义临时敌人

   if ((chance < 2 + level))//如果(随机数<2+等级)

   {

    tempEnemy = new EnemyImage  ;//临时敌人=新 敌人图片

    tempEnemy.speed = 1 + level;//临时敌人的速度=1+等级

    tempEnemy.y = -25;//临时敌人的y坐标=-25

    tempEnemy.x = Math.floor(Math.random() * 515);//临时敌人的x坐标=随机数0-515

    addChild(tempEnemy);//添加临时敌人影片剪辑

    enemies.push(tempEnemy);//敌人数组推动临时敌人前进:临时敌人随着数组递增序号

   }

  }

  public function moveEnemies()//移动敌人函数

  {

   var tempEnemy:MovieClip;//定义临时敌人

   for (var i:int = enemies.length - 1; i >= 0; i--)//变量i从敌人数组长度循环到0

   {

    tempEnemy = enemies[i];//临时敌人=敌人数组[i]

    tempEnemy.y +=  tempEnemy.speed;//临时敌人的y坐标 +=临时敌人的速度

    if (tempEnemy.y > 435)//如果 临时敌人的y坐标>435

    {//

     removeEnemy(i);//执行移除敌人函数

    }//

   }//

   var tempMissile:MovieClip;//定义临时子弹

   for (i = missiles.length - 1; i >= 0; i--)//变量i从子弹数组长度-1循环到0

   {//

    tempMissile = missiles[i];//临时子弹=子弹数组[i]

    tempMissile.y -=  tempMissile.speed;//临时子弹的y坐标 -= 临时子弹的速度

    if (tempMissile.y < -35)//如果 临时子弹的y坐标 < -35 

    {//

     removeMissile(i);//执行移除子弹函数

    }//

   }//

   var tempExplosion:MovieClip;//定义临时爆炸

   for (i = explosions.length - 1; i >= 0; i--)//变量i从爆炸数组长度-1循环到0

   {//

    tempExplosion = explosions[i];//临时爆炸=爆炸数组[i]

    if (tempExplosion.currentFrame >= tempExplosion.totalFrames)//如果 临时爆炸的当前帧>=临时爆炸的结束帧

    {//

     removeExplosion(i);//执行移除临时爆炸函数

    }//

   }

  }

 

  public function testCollisions()//测试碰撞函数

  {

   var tempEnemy:MovieClip;//定义临时敌人

   var tempMissile:MovieClip;//定义临时子弹

 

   enemy:for (var i:int = enemies.length - 1; i >= 0; i--)//行标:enemy 变量i从敌人数组的长度-1循环到0

   {

    tempEnemy = enemies[i];//临时敌人=敌人数组[i]

    for (var j:int = missiles.length - 1; j >= 0; j--)//变量j从子弹数组长度-1循环到0

    {

     tempMissile = missiles[j];//临时子弹=子弹数组[j]

     if (tempEnemy.hitTestObject(tempMissile))//如果临时敌人与临时子弹碰撞

     {

      score++;//分数+1

      scoreText.text = score.toString();//分数文本框的文本=分数值转换到文本

      makeExplosion(tempEnemy.x,tempEnemy.y);//执行制造爆炸函数,坐标为(敌人的x坐标,敌人的y坐标)

      removeEnemy(i);//执行移除敌人函数

      removeMissile(j);//执行移除子弹函数

      break enemy;//返回行标enemy

     }

    }

   }

 

 

   for (i = enemies.length - 1; i >= 0; i--)//变量i从敌人长度-1循环到0

   {

    tempEnemy = enemies[i];//临时敌人=敌人数组[i]

    if (tempEnemy.hitTestObject(player))//如果 临时敌人与玩家碰撞

    {

     chances--;//机会-1

     chancesText.text = chances.toString();//机会文本框的文本=机会值转换到文本

     makeExplosion(tempEnemy.x,tempEnemy.y);//执行制造爆炸函数,坐标为(敌人的x坐标,敌人的y坐标)

     gameState = STATE_REMOVE_PLAYER;//游戏状态 转到 移除玩家状态

    }

   }

  }

  public function makeExplosion(ex:Number,ey:Number)//制造爆炸函数(参数ex,参数ey)

  {

   var tempExplosion:MovieClip;//定义临时爆炸

   tempExplosion = new ExplosionImage  ;//临时爆炸=新 爆炸图片

   tempExplosion.x = ex;//临时爆炸的x坐标=参数ex

   tempExplosion.y = ey;//临时爆炸的y坐标=参数ey

   addChild(tempExplosion);//添加临时爆炸影片剪辑

   explosions.push(tempExplosion);//爆炸数组尾部添加临时爆炸元素

   //数组用法:数组.方法(对象) 例如:爆炸数组。push(临时爆炸对象)

   //push 在数组尾部增加一个元素

   //pop删除数组最后一个元素

   //shift 删除数组的第一个元素

   //index of 返回该元素在数组的位置

   //sort对数组进行自定义排序

   //splice将元素添加到指定的位置并删除所需元素

   //concat将指定的元素与原来的数组连接

   //join将数组中的元素转换为字符串,在元素之间插入指定分隔符,返回字符串

   //unshift在元素的开始增加一个元素

   //reverse把现有的数组的顺序完全倒过来这里都是常用的一些方法

   var sound:Sound = new Explode  ;//声音=新 爆炸声

   sound.play();//声音播放

  }

  public function testForEnd()//测试游戏结束

  {

   if ((chances <= 0))//如果 机会<=0

   {

    removePlayer();//执行移除玩家函数

    gameState = STATE_END_GAME;//游戏状态 转到 结束游戏状态

   }

   else if ((score > level * 30))//否则,如果分数>等级*30

   {

    level++;//等级+1

    levelText.text = level.toString();//等级文本框的文本=等级转换到文本

   }

  }

  public function removeEnemy(idx:int)//移除敌人函数(参数idx)

  {

   removeChild(enemies[idx]);//移除敌人影片剪辑(敌人数组[参数idx])

   enemies.splice(idx, 1);//敌人数组的当前参数idx位置删除1个元素

   //splice 将元素添加到指定的位置并删除所需的元素

 

  }

  public function removeMissile(idx:int)//移除子弹函数(参数idx)

  {

   removeChild(missiles[idx]);//移除子弹影片剪辑(子弹数组[参数idx])

   missiles.splice(idx,1);//子弹数组的当前参数idx位置删除1个元素

  }

  public function removeExplosion(idx:int)//移除爆炸函数(参数idx)

  {

   removeChild(explosions[idx]);//移除爆炸影片剪辑(子弹数组[参数idx])

   explosions.splice(idx,1);//爆炸数组的当前参数idx位置删除1个元素

  }

  public function onMouseDownEvent(e:MouseEvent)//鼠标按下事件函数

  {

   if ((gameState == STATE_PLAY_GAME))//如果 游戏状态 

   {

    var tempMissile:MovieClip = new MissileImage  ;//定义临时子弹 = 新 子弹图片

    tempMissile.x = player.x + player.width / 2;//临时子弹的x坐标=玩家的x坐标+玩家的宽度

    tempMissile.y = player.y;//临时子弹的y坐标=玩家的y座标

    tempMissile.speed = 5;//临时子弹的速度=5

    missiles.push(tempMissile);//子弹数组尾部添加临时子弹元素

    addChild(tempMissile);//添加临时子弹影片剪辑

    var sound:Sound = new Shoot  ;//定义声音= 新 发射声音

    sound.play();//声音播放

   }

  }

 }

}






如何快速制作FLASH
同时,利用在线资源和社区交流也是提升制作效率的有效途径。我们可以在网上找到许多FLASH制作的教程、素材和灵感,与其他FLASH制作者交流经验,共同进步。最后,合理规划制作流程也是快速制作FLASH的关键。在开始制作之前,我们需要明确动画的主题、风格和目标受众,然后制定一个详细的制作计划。这个计划应该包括动画...

flash 动画成品(简单)
图3-2 月有阴晴圆缺 具体操作步骤:新建一个FLASH动画文档,在[属性]面板中将背景颜色设为深蓝色,在工作区右上角的下拉列表框中选择[显示全部]选项。单击工具箱中的[椭圆工具]按钮,在[属性]面板中设定边框无色,填充黄色,按住SHIFT键绘制一个正圆。单击图层1的第2帧,按F6键,创建一个关键帧,...

用flash制作一个小动画,高手指教,在线等
由你自己定,然后用橡皮擦工具擦出个小缺口出来 分别选中小圆图层的第一帧和最后一帧里面的小圆元件,拖动它使其分别吸附在刚才创建的引导层上圆的缺口上 (注意:是要吸附上去,拖过去的时候又出现吸附的提示)4.最后选中大圆的那层,在30桢插入桢就OK这个简单,1、在图层1上,先画一个大圆,将...

我 想用Flash制作一 个简单的动画。。看我 找 不到一 个 的素材。。应...
楼主:如果想制作这个动画必需要知道一个简单的FLASH道理 其实FLASH原理很简单,你应该知道的,比如你有一本书,你在这本书上的每张纸上画不同的东西,画完后快速翻动这本书,你就会发现画面动起来了,FLASH就是利用这个原理。下面就以你说的这个单摆为例我来制作:1、打开FLASH MX 2、新建一个文档...

怎样用flash制作一个简单的动态文字效果
软件:FLASH CS6 1、打开FLASH CS6软件,新建AS3文档。如下图 2、选择文本工具,在舞台中制作文本如下:3、右键转换为图形元件,如下图、4、在时间轴上找一帧插入关键帧(快捷键F6或者选择一帧右键后选择插入关键帧)。如下图 5、选择中间的普通帧后右键,选择创建传统补间动画。6、在最后的关键帧...

求一个flash的制作详细步骤,及代码!
1,添加文章,这个如果是添加本地文件如文本,音乐,视频等的话,需要用到FLASH AIR,源文件依然是FLA,你新建的时候可以在常规列表里面找到,它是一个跨平台的桌面应用程序,可以访问你的本地文件,它生成的是一个安装软件,把这个软件安装后打开生成的SWF即可运行。同时还要用到FLASH组件,如果你不是...

怎么做flash
现在来练习制作一个简单的动画,并输出动画的效果。 ①启动Flash,将任务栏上的多余窗口关闭,留下Flash和教程两个窗口,让它们并排显示(Flash的窗口大一些),在Flash窗口的标题栏上单击鼠标左键,回到Flash窗口,Flash默认新建一个影片1文件,我们首先来设置一下工作区的相关数据,单击选择菜单栏里的“修改”菜单,再在里面...

flash是一个什么软件?
Flash被称之为闪客,这是一款矢量动画制作软件,制作的动画具有短小精悍的特点,所以被广泛应用于网页动画的设计中。随着功能越来越多,在安全性上面也很不稳定,再加上HTML5的出现,Adobe已经宣布在2020年停止开发和更新Flash。具体介绍如下:一、Flash是什么 1、Flash是一个优秀的矢量动画制作软件,它以...

flash是一个什么软件?
是一个FLASH制作软件,是一个像拼积木的软件,叫什么名字 swishmax吧,制作flash很方便 flash cs5是一个什么样的软件 制作flas *** 的,建议新手而且要入门as2的先用flash 8.0。界面简单。 这是相关网址::baike.baidu.\/link?url=_U1esv7YPXV7hF1-Q_e63ii9ADAOptzdzNunPbyGAIOo7OmGwUEmldorFwXiGthe5in3Th7...

不会做FLASH,怎么制作最简单的幻灯片效果的FLASH?
也就是说,只需要按规定的间隔时间翻页,而不需要动画效果???你的意思是不是一个图片一个图片放,用绘声绘影就可以(不过要现成图片),其实作GIF不错,也挺简单,用Ulead GIF Animator 5就行,ps好像也行。

如何制作简单的flash动画?(做动画没那么简单,想做简单的动画也是,首先你要有恨过准备,例如动画的素材,例如声音,角色设定,角色中设定就要画很多元件,一般都是以关节... 不同性质的动画制作方法不一样。你也可以手绘,就是每隔几帧画一个动作,连贯起来就是动画了。但是那个比较考美术功底。 你还可咦找几张...)

AI制作简单的FLASH动画(本例我们以制作倒计时数字为例讲一下其制作方法,先看一下效果: 当然这个图是gif的 具体的制作步骤如下: 首先,新建文档新建一个大小为QVGA,颜色模式为RGB,分辨率为72的文档,命名为Flash动画 在画板中新建矩形路径,执行"对象》路径》分割为网格"命令,并调节数值: 然后...)

flash怎么制作简单的遮罩动画(flash制作简单的遮罩动画的步骤如下:1.启动flash后,新建一个大小为600*400,帧频为12fps,背景颜色为白色的文档。2.执行文件导入导入到库命令,导入一张风景图片,设置大小为600*400,x为0,y为0。3.在100帧处插入帧,新建图层2,选择第一帧绘制一个正圆形。4.依次在25,50,75,100帧处插...)

flash 动画成品(简单)(一. 制作“月有阴晴圆缺”逐帧动画 制作一个月亮从十五到三十,又从初一到十五的圆月到弯月的变化过程,如图32所示。 图32 月有阴晴圆缺 具体操作步骤: 新建一个FLASH动画文档,在[属性]面板中将背景颜色设为深蓝色,在工作区右上角的下拉列表框中选择[显示全部]选项。...)

怎样把图片做成FLASH动画(简单1、新建一个FLASH文档,注意,尺寸最好修改成和你的图片一样大。2、将你的两张图片,导入到库,这个会吗?3、把第一张图片拖动到第一... 再选中第二个关键帧,也是按F5加普通帧,自己调节一下长度就可以了。6、提醒一下,最后你要做QQ表情的话,还要将做好的动画,导出为GIF格式...)

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网