`
hgfghw6
  • 浏览: 43135 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

AS入门第二课:面向对象编程基础

阅读更多

[1b]面向对象编程基础[/1b]
ActionScript是一种面向对象的编程语言.通常我们会认为编程就是连续地写一系列指令,计算机按顺序地执行它.而面向对象编程则是将程序分成各个块,分散到对象上.什么是对象?对象就是我们在flash中能看到的一切东西.舞台是一个对象,时间轴、影片剪辑、按钮、文本、位图都是对象.在第一课中我们己说过:在ActionScript2.0中我们可以将程序写在关键帧、影片剪辑、按钮元件上.即便是将程序完全写在关键帧上,它也必须要对象的事件驱动才能执行.
在理解了面向对象编程后,我们必需要对一些概念有所了解.事实上我们在上面对对象己经有了一定的了解.就如同我们的家中,所有的东西都可以叫做对象.比如,电视机,电冰箱,书桌,衣柜等等.很容易发现,这些东西,总有那么几个都有相似之处.比如,电视机、电冰箱都需要用电;书桌、衣柜都是用木头做成的. 我们便把家里的东西分成了几类,并为每一类东西取上一个名字,比如,电器类、木器类等.这样我们就理解了另一个重要的概念一"类".
类是某一类型对象的概括或者说是模板,在ActionScript中,所有对象都是由类定义的.每个类都包括了三个重要的元素:事件、属性、方法,这是我们必须要了解的三个重要概念.
[1b]事件:[/1b]
在面向对象的编程中,并不是将程序按顺序交给计算机去执行,上面己经谈到了,程序被分散到了对象上.那么要计算机执行这些程序就需要事件来触发.通俗地讲就是:当某件事情发生时就去做一些事情.这个某件发生的事情就是事件.在flash中,常常会放上一个按钮,比如"开始"按钮.程序设计者可能是这样的思路:当按钮按下时就播放动画.那么"当按钮按下时"就是按钮对象的事件.在ActionScript2.O中,程序可以写在关键帧和元件上,事件在关健帧中和原件中的输写方法是不一样的.
[1b]事件在关健帧中的写法:[/1b]
元件名称.事件名称 = function(){
要执行的语句
....
}
[1b]事件在元件上的写法:[/1b]
on(事件名称){
要执行的语句
.....
}
我们来做一个练习,在舞台上有一名为play_btn的按钮,现在要实现点击按钮动画就播放.新建flash文档,用椭园工具画一个园,然后,在40帧插入关健帧,将园移到另一位置,建立补间动画.新建一图层,从内部库中拖一个按钮到舞台上.打开属性面板,为按钮命名为play_btn.这里先介绍一个最常用的事件:release,这是当放开鼠标按键时触发.实际也就是完成了一个点击动作时发生.
首先,在幀动作面板上写程序的方式完成练习:
新建图层,命名为action,当这不是必须的,你完全可以给它取个其它名字.
打开幀动作面板,输入:
      stop();
//这是让动画停止播放,以便让我们点击按钮时才播放.
      play_btn.onRelease = function(){
play();
//让动画开始播放
       }
测试影片,当点击按钮后,园形开始移动.
回到场景中,可以看到,在action图层时间轴的第1幀上,有一个a字,这说明在这一幀上有程序.
下面用在元件上写程序的方式来完成练习:
    将幀动作除第一行的stop();外其它的程序全部删除.然后,在按钮元件上点右键,点击"动作",打开动作面板,输入如下代码:
          On(replease){
Play();
}
测试影片,得到相同的效果.
[1b]注意:
[/1b]在幀动作面板中同元件动作面板中事件的名称不一样,如上例,在幀动作中是:onRelease,而在元件上则是:release
对象的属性可以理解为对象的特性,比如,大小,位置,颜色等.属性的输写规则是:
[1b]属性:[/1b]
对象名称.属性名称 = 值;
下面介绍几个最常用的属性:
_x,_y:分别是对象在舞上台的x,y坐标,这两个属性可以确定对象在舞台上的位置.
_xscale,_yscale:分别是对象在舞台上沿x,y轴方向的缩放比例,实际上就是宽和高的缩放比例,以百分比表示,例如:
        my_mc._xscale = 50;
 这表示,元件my_mc的宽度缩小到原来的50%.
_alpha:这是对象的透明度,取值为0-100.
_rotation:这是对象的旋转度,以角度为单位.
_visible:为是对象是否可见,可设置两个值,true(或1)和false(或0).比如要设置元件my_mc在舞台上不可见,可用:
       my_mc._visible = false; 或 my_mc._visible = 0;
相反要设置它在舞台上可见则用:
       my_mc._visible = true; 或 my_mc._visible = 1;
[1b]函数:[/1b]
你可能要问,属性介绍完了该介绍方法了,你怎么介绍起函数来了?原因很简单,方法也是函数.将函数附加到对象时,它就被称为方法.什么是函数呢?将完成一个任务的若干语句封装起来,就叫函数.也许用例子来说明会好理解一些.比如,要完成一个开电视的任务,可能需要很多步骤,插上电源,开机,选频道,设置音量.我们将这些步骤封装起来,并给它取个名字"开电视"这就创建了一个开电视的函数.在ActionScript2.O中创建函数的格式是:
function 函数名称(){
要执行的语句;
.....
}
比如要创建上面开电视函数,就这样写:
function 开电视(){
插电源;
开机;
选频道;
设音量;
}
函数创建以后,要调用这个函数只需:函数名()即可,比如我们要执行开电视的任务,只需输入:
开电视();
练习一下,我们来创建一个函数,然后调用它.打开第一帧的动作面板,输入:
function test(){
trace("我会写函数了");
}
test();
测试影片,在输出面板中,会出现"我会写函数了"几个字.这个练习我们首先创建了一个叫test的函数,然后用test();调用了它.
有时会有这样的情况,在函数内的语句中要用到数据,在创建函数的时候,却不能确定这些数据,比如每次调用会用不同的数据.这时就会用到参数,调用时,通过参数将数据传递给函数.格式如下:
创建函数的格式:
function 函数名称(参数1,参数2,…){
要执行的语句
}
调用函数的格式:
函数名称(值1,值2,…);
还是以开电视为例:
创建开电视函数:
function 开电视(频道,音量){
插电源;
开机;
选频道=频道;
设音量=音量;
}
调用函数:
开电视(12,28);
调用后,电视打开,并将频道设为12,音量设为28.
练习:在帧动作面板中输入:
function
test(a,b){
c=a+b;
trace(c);
}
test(3,5);
测试影片,输出面板中应显示 8 .
了解了函数后,再来说方法就简单多了.上面已经说过,将函数附加到对象,就称为方法.AS中内置了很多方法,对于这些方法,我们不需要去了解它执行了些什么语句,只需要知道它可以完成的任务就行了.我们可以用:
对象名称.方法名称();
的格式来调用这些方法.比如有一个my_mc的影片剪辑元件,我们可以调用它的一些方法:
my_mc.stop();
my_mc.startDrag();
[1b]按钮:[/1b]
在交互式的动画制作中, 经常会用到按钮,比如我们会放上一个"播放"、"停止"、"重放"等按钮.有两种方式可以将按钮添加到舞台上,一种是从内部库中拖一个按钮到舞台上;另一种方法是自己创建一个按钮,这里主要介绍一下自己创建按钮的方法,因为常常有人会问:为什么我创建的按钮点击它时不起作用?这可能就是创建按钮时出了问题.现在点击"插入"菜单-"创建新元件",选择按钮,这时就进入按钮编辑窗口,可以看到,时间轴上只有4帧,分别是:弹起,指针经过,按下,点击.特别要注意的是,点击那一帧,这一帧是点击的范围,因此这一帧是必须的,而且要注意的是,如果你的按钮是纯文字的,如Play,那么在这一幀应该画一个矩型,作为点击范围,不然,用户就只有点击到文字的笔划上才能触发按钮事件.在按钮编辑窗口中同样可以有很多层,比如第一层为图形,第二层为文字等.下面来制作一个按钮:
点击“插入”-“新建元件”,选择按钮,确定,这样就进入元件编辑窗口。
在弹起那一幀画一矩形,按钮大小吧。黑色笔触,灰色填充。在指针经过那一幀、按下幀幀、点击幀,插入关键幀。在指针经过幀将矩形填充色变为深灰色。在按下那幀,将边框线条粗细调为2。新插入图层,建一静态文本框,输入“Play”.这样按钮就做好了。
现在可以将这个按钮从库中拖到舞台上,测试影片,看一下,当鼠标移到按钮上,点下按钮时的效果。
练习:按钮的应用。点击一下按钮,影片剪辑元件就向右移动一点。新建一影片剪辑元件,就画一个园就行了。将这个mc拖入舞台上,放到稍左一点的位置,打开属性面板,为其取名为:my_mc。新建一个按钮,然后拖入舞台,为其取名为:yy_btn.新插入一层,命名为:action,打开动作面板,输入:
yy_btn.onRelease = function(){
my_mc._x = my_mc._x + 10;
}
测试影片,点击一次按钮,园就会向右移动一点。
作业:请用本章所介绍的知识,完成下的效果
 
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/4530.html
分享到:
评论

相关推荐

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     第2章 快速入门   2.1 程序输出,print语句及“hello world!”   2.2 程序输入和raw_input()内建函数   2.3 注释   2.4 操作符   2.5 变量和赋值   2.6 数字   2.7 字符串   2.8 列表...

    Python核心编程(第二版).pdf (压缩包分2部分,第一部分)

     第2章 快速入门   2.1 程序输出,print语句及“hello world!”   2.2 程序输入和raw_input()内建函数   2.3 注释   2.4 操作符   2.5 变量和赋值   2.6 数字   2.7 字符串   2.8 列表...

    Python核心编程第二版

     第2章 快速入门   2.1 程序输出,print语句及“Hello World!”   2.2 程序输入和raw_input()内建函数   2.3 注释   2.4 操作符   2.5 变量和赋值   2.6 数字   2.7 字符串   2.8 列表...

    Python核心编程第二版(ok)

    Python核心编程第二版(ok) 第1部分 Python核心  第1章 欢迎来到Python世界   1.1 什么是Python   1.2 起源   1.3 特点   1.3.1 高级   1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   ...

    c#学习方法

    2. C#面向对象编程:封装、继承、多态性、面向接口编程、动态多态性、字符串基础等。3. .Net 框架原理讲解:多维数组、可变参数 Params、类的实例化内存分配机制等。4. 深入学习对象类型:里氏替换原则(LSP)、类的...

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    无论是刚开始接触面向对象编程的新手,还是打算转移到c#的具有c,c++或者java基础的程序员,都可以从本书中吸取到新的知识。 作译者 john sharp,content master首席技术专家。content master隶属于cm集团,cm集团...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    C# 使用方法 入门教程

    第2章 C#基础.... 23 2.1 引言...... 23 2.2 第一个C#程序...... 23 2.2.1 代码..... 24 2.2.2 编译并运行程序..... 24 2.2.3 详细介绍..... 25 2.3 变量........ 27 2.3.1 变量的初始化..... 27 2.3.2 变量的作用域...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    第二章 用户和权限 一、 用户介绍 ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或...

    spring.net中文手册在线版

    第二章 简介 2.1.概述 2.2.背景 2.3.模块 2.4.许可证信息 2.5.支持 第三章 背景 3.1.控制反转 第一部分 核心技术 第四章 对象、对象工厂和应用程序上下文 4.1.简介 4.2.IObjectFactory,...

    ASP.NET常见问题集锦.zip

    ASP.NET常见问题集锦.zip . .. .net中中文乱码问题解决.txt ADO.NET 与 XML:双剑合壁,威力强大.doc ... ASP.NET ViewState 初探.doc ASP.NET Web 方法中的 ... 面向对象设计(OOD)思想(C#) - c-c++ - CSDN

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    (如果你是程序员,你会惊讶的发现,这与模块化面向对象编程的思想极其相似!其实网页何尝不是一种程序呢?) 正是这种区别使得XML在网络应用和信息共享上方便,高效,可扩展。所以我们相信,XML做为一种先进的数据...

    PT80-NEAT开发指南v1.1

    第二章 PT80 开发入门 .................................................................................................................................. 2 开发环境搭建 ....................................

    PLSQLDeveloper下载

    本文主要介绍PL/SQL的编程基础,以使入门者对PL/SQL语言有一个总体认识和基本把握。 编辑本段主要特性  PL/SQL编辑器,功能强大——该编辑器具有语法加强、SQL和PL/SQL帮助、对象描述、代码助手、编译器提示、PL/...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。 - 可伸缩性 传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决...

Global site tag (gtag.js) - Google Analytics