本例继续讲解AS的基础知识,今天我们来学习Flash AS入门系列教程第七课:影片剪辑第一节创建影片剪辑~~
影片剪辑
影片剪辑就象一个独立的swf一样,运行时不受主时间轴的限制,它有它自已的时间轴。在AS中影片剪辑为 MovieClip 类类型的一个对象。您可以使用 MovieClip 类的属性和方法控制影片剪辑运行时的外观和行为。因此,在下文中将影片剪辑简称为:mc
第一节 创建MC
一.在创作环境中创建MC:
在创作环境中创建MC的方法是:点击“插入”菜单-“新建元件”,在弹出的对话框中为该MC命名,在下面的类型选择中选“影片剪辑”,确定。现在就进入了MC的编辑环境,在这里制作你的MC。制作完成后,点击场景选项卡,则完成了MC的创建。打开库面板,可以看到刚刚创建的MC已在库中。为了能在AS中操作该MC,那么可有两种方式将MC加载到舞台上:一是用鼠标从库中将MC拖到舞台上,然后打开属性面板,为该MC实例命名,比如:mymc_mc。另一种方法是:
在运行中从库中加载MC:
要在运行中从库中加载MC,首先要设置MC的连接标识:在库中右击MC,点击连接,在弹出的对话框中,在“为ActionSprit导出“前的方框中打钩,然后在上面标识符栏内取一个名字,比如:mymc.
attachMovie()方法
有标识符后就可以在运行时用MC的attachMovie()方法加载MC。
格式:MC. attachMovie(“标识符”,“新名称”,深度);
这里MC是指要加载MC的MC,一个MC中是可以加载另一个MC的,当然也可以是主时间轴,如果代码是写在帧上,则常用this或_root来代表主时间轴,推荐使用this,也可以省略不写。如果代码是写在元件上,要主场景加载mc就必须用:_root或this.perent.
getNextHighestDepth() 方法:
深度相当于层的概念,深度的数字越大,则越在上面。如果深度相同,那新加载的对象就会覆盖原来相同深度上的对象,在后面我们会发现这是一个十分有用的东西。在用attachMovie()方法加载MC时,怎样却定深度呢?深度一般可以从0开始,从上加。也有问题,你说我记不住现在深度是多少了,万一用重了,不是就将原来那个对象删了吗?于是getNextHighestDepth() 方法运应而生。
getNextHighestDepth() 方法确定传递给attachMovie()方法的深度值,以确保 Flash 将该影片剪辑呈现在当前影片剪辑中同一级和同一层上所有其它对象的前面。于是我们上面已在库中设好标识符的MC就可以这样加载到场景中:
this. attachMovie(“mymc”,”mymc_mc”,this.getNextHighestDepth());
用attachMovie()方法加载的MC,会被加载到舞台上(0,0)的位置,很显然这不是我们想要的结果,所以加载后往往要设置MC的_x,_y属性,以使它呆在我们希望它呆的地方。
下面来做一个练习:
新建一个MC,居中画一个圆,在第50帧插入关键帧,将圆向右移500象素,创建补间动画。在库中右击圆元件,点击“连接”,在弹出的对话框中,在“为ActionSprit导出“前的方框中打钩,然后在上面标识符栏内取一个名字:mymc.现在回到主场景,右击第一帧,点“动作”,在动作面板中输入:
this. attachMovie(“mymc”,”mymc_mc”,this.getNextHighestDepth());
mymc_mc._x=50;
mymc_mc._y=200;
测试影片,会看到库中的MC被加载到舞台上,一个圆从屏幕的左边向右边移动。
二.在运行时创建MC
createEmptyMovieClip()方法
在运行时可用:createEmptyMovieClip()方法创建一个空的MC,这常常用于需用AS绘图的代码中。
格式:MC. createEmptyMovieClip(”名称“,深度);
例:this.createEmptyMovieCli(”mymc_mc”,this. getNextHighestDepth());
三.复制MC
duplicateMovieClip()方法:

在运行时复制一个MC。
格式:MC.duplicateMovieClip(“新名称“,深度)
比如上面我们已建好的一个MC,mymc_mc,现在要复制它,这样写:

Mymc_mc.duplicateMovieClip(“mymc1_mc”,this.getNextHighestDepth());
duplicateMovieClip()全局函数:
这是一个全局函数而不是MC的方法,虽然它们的作用是一样的,但格式有所不同。
格式:duplicateMovieClip(“要复制的MC的名称”,“新名称”,深度);
仍然以mymc_mc为例,要复制它,这样写:
duplicateMovieClip(“mymc_mc”,“mymc1_mc”,this.getNextHighestDepth())
四.删除加载的MC
removeMovieClip()方法:
对于用attachMovie()方法加载的,用duplicateMovieClip复制的和用createEmptyMovieClip()创建的MC,可以用removeMovieClip()方法移除。
来看看上面我们做那个练习,测试时,小球不停地反复地从左向右运动,现在我们让小球只运动一次,即当小球到达右边时,移除小球MC。
做法:在库中双击小球MC,进入小球元件编辑区,在第50帧上,点右键,点动作,在帧面板中输入:
this. removeMovieClip();
测试影片,当小球移动右边,第50帧时,小球被移除了。
五.几个常用的属性:
MC有很多属性,将在后续课程中陆续介绍,这里先介绍几个常用的属性:
_x,_y:MC在其父级容器中的坐标位置。
_alpha:透明度,其值为0-100;
_rotation:旋转的角度。
_height:高度
_width:宽度
_visible:MC是否可见,些值为true或1,则MC可见,如果为false或非1则不可见。
_xmouse:鼠标位置的x坐标
_ymouse:鼠标位置的y坐标
_xscale:MC宽度的百分比例,可用于设置MC的大小。
_yscale:MC高度的百分比例,可用于设置MC的大小。
六.综合练习:夜色中的荧火虫
下面通过一个夜色中的荧火虫的制作,作为本节内容的综合练习。
首先新建一Flash文档,新建一MC,取名为“荧光”。 用椭圆工具,禁止笔触,绿色填充,居中画一个小圆,2个像素大小就行。居中对齐。点击“修改”-“形状”-“柔化填充边缘“,距离10,步骤5,方向扩展。在第10帧插入关键帧,将圆向下离一段距离。创建补间动画。在库中右击荧光元件,设置标识符为:mymc.
回到主场景,打开帧动作面板输入:
i=0;
onEnterFrame = function() {

if(i<50){

this. attachMovie("mymc","mymc"+i,i);

mymc_mc = eval("mymc"+i);

mymc_mc._x=random(450)+50;

mymc_mc._y=50+random(300);

mymc_mc._rotation = random(360);

i++;

}else {

i=0;

}
}
OK,测试影片。
上面代码通过onEnterFrame事件,使每一过帧从库中加载一次荧光元件,并用一个i变量计数,使荧光数量不超过50。this. attachMovie("mymc","mymc"+i,i);这一句加载语句中的深度用了变量i,而i将会是从0到49,然后回到0,周而复始,这样第二轮的0-49将的深度就与第一轮的相同,上面我们说到了,这时新加载的就会覆盖原来的,这就实现了荧光的更新,同时也保证了荧光的总数量为50个。前面我们说深度的这一特性将会很有用,在这里就用上了。荧光的位置和旋转角度都采用random()来随机产生,这样就实现了,荧光随机出现的舞台上,运动方向也是随机的。
大家可以扩展一下,将加载的荧光元件的_x属性设为:_xmouse+random(50),将_y属性设为:_ymouse+random(50),测试看一看,一个鼠标跟随效果就出来了。
上面练习是用attachMovie()从库中加载元件的方式实现的,用duplicateMovieClip()复制的方法也是可以实现的,方法略有不同:
将库中的灾光元件拖到舞台上,任一位置,打开属性面板,将实例名称设为:mymc_mc.帧动作上的代码为:
mymc_mc._visible = false; //首先将舞台上的荧光元件隐藏。
i=0;
onEnterFrame = function() {

if(i<50){
duplicateMovieClip (“mymc_mc”,"mymc"+i,i);

mymc_mc = eval("mymc"+i);

mymc_mc._x=random(450)+50;

mymc_mc._y=50+random(300);

mymc_mc._rotation = random(360);

i++;

}else {

i=0;

}
}

Flash AS入门教程:影片剪辑第一节创建影片剪辑相关推荐

  1. Flash新手入门教程:动画补间和形状补间转

    Flash新手入门教程:动画补间和形状补间 2008-07-10 10:59:52  作者: 清风掠影  来源: 中国教程网论坛  浏览次数: 11930    评论 本文由 中国教程网 清风掠影 原 ...

  2. oracle sql 调用自定义函数_PSCAD入门教程(第7节):怎样调用fortran编写的自定义函数?(附模型)...

    PSCAD入门教程(第7节):怎样调用fortran编写的自定义函数?(附模型)​mp.weixin.qq.com https://www.zhihu.com/video/12422083467175 ...

  3. UE4课堂笔记——《UE4C++游戏开发入门教程!》第一期开场,C++必须了解小知识

    <UE4C++游戏开发入门教程!>第一期 UE4C++游戏开发入门教程!(第一期) 学习ue4 c++可以更好理解ue4,但需要已经了解或掌握至少以下两点: 已有编程经验 了解蓝图 所以可 ...

  4. PyQt5快速入门教程3-QtDesigner设计第一个界面

    PyQt5快速入门教程3-QtDesigner设计第一个界面 1.开发环境清单 基本环境如下: Windows 10 Python 3.7 PyCharm 2019.3.3 x64 PyQt5相关的库 ...

  5. 【大数据入门笔记系列】第一节 大数据常用组件

    [大数据入门笔记系列]第一节 大数据常用组件 大数据释义 大数据组件 跳转 大数据释义 近些年来,坊间一直流传着这样的言论:"大数据时代,人人都在裸奔".对于外行人来说,对于&qu ...

  6. 第一节:创建SpringBoot项目并运行HelloWorld

    SpingBoot 365计划开始更新了,计划手敲365个SpringBoot案例回顾总结形成知识体系.目前已经输出了32节的内容.所有源码托管在GitHub和Gitee上. 1.第一节:创建Spri ...

  7. FME入门教程:第六节 FME转换器的使用

    教程简介 本教程为适合新手学习的FME软件入门级教程,对FME的功能概念.界面及常用设置.数据读取.数据输出.转换器的使用.参数的使用.自定义转换器等几个方面进行讲解,引领进入FME的精彩世界. 课程 ...

  8. vim入门教程(实践第一)

    2019独角兽企业重金招聘Python工程师标准>>> vim 是一个具有很多命令的功能非常强大的编辑器.限于篇幅,在本教程当中      就不详细介绍了.本教程的设计目标是讲述一些 ...

  9. Electron入门教程1 —— 编写第一个桌面应用程序

    前言: 最近临时起意,想开发桌面应用程序,但是我们肯定都先会想到微软的C#.而我又不想花时间去学习C#,而且就算学了C#,还是很难快速开发出好看的Windows桌面应用.所以此时我就想,既然移动app ...

最新文章

  1. python有关迭代器和生成器的面试题_【面试题 | Python中迭代器和生成器的区别?】- 环球网校...
  2. 第九章 Django框架——csrf请求伪造和csrf_token使用
  3. 2021-10-11 ! AVL树 及其平衡调整 四种情况 恋上数据结构笔记 (考过)
  4. ping 不通容器 宿主_使用容器的正确方式,Docker在雪球的技术实践
  5. TCP端口状态 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT详解,以及三次握手,滑动窗口
  6. dmp标签_京东dmp人群标签的使用,直接决定了你快车的盈利
  7. 机器学习两大利器:Boosting 与 AdaBoost
  8. Redis(四):String字符串数据类型详解
  9. 安卓学习UI组件-ViewFlipper-实现屏幕切换动画效果
  10. Linux学习笔记 (五)关机和重启命令
  11. Eclipse统计代码行数
  12. VB 二进制数组与十六进制字符串相互转换
  13. activemq 修改服务端端口61616和控制台端口8161启动
  14. 疯狂kotlin讲义连载之流程控制——顺序结构与分支结构 二
  15. Kaggle酒推荐,winemag-data-130k-v2.csv
  16. revi插件使用方法| 如何在Revit中修改CAD图纸
  17. HCNA每日一练错误
  18. C语言 符号的不同意义
  19. Unity Animator人物模型动画移动偏移
  20. [转]centos安装oracle

热门文章

  1. iOS加固可以,但是别用虚拟机......
  2. mysql对姓名、手机号、身份证号做脱敏处理
  3. 爬取2020东京奥运会的所有赛事的情况,并分类输出,使用Python实现
  4. python+unittest+requests+HTMLTestRunner 框架通过读取excel测试用例实现接口自动化测试
  5. 关于Android 静音和恢复
  6. Activity的四种启动方式
  7. 计算机开机主机不停地重启,电脑开机几秒自动重启停不下来,这是怎么回事?...
  8. 测试用例设计方法---因果图法
  9. 【转】SWFUpload使用指南
  10. python删除字符串中指定字符_python如何去除字符串中不想要的字符