求一个简单的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格式...)