第 5 章 Flash AS3.0 游戏基础. 本章知识地图 5.1 ActionScript3.0 概述 2007 年 4 月,支持 ActionScript3.0 的 Adobe Flash CS3 正式版发布,随着 不断的升级和扩展, ActionScript 的功能越来越强大。 ActionScript3.0.

Slides:



Advertisements
Similar presentations
高中新课程思想政治(必 修 1 、 2 )的教学体会 北京师大二附中 李文燕 2008 年西城新课程教师培训的讲稿.
Advertisements

《饲料分析与质量检测技术》 说课 主讲教师:管建慧. 课程名称: 《饲料分析与饲料质量检测技术 》 课程编码:
2009/12/211 商務科技管理系 實 務 專 題 報 告 辦桌非難事 學生: 施雅雯 ( ) 張敬芝 ( ) 葉明臻 ( ) 黃怡琅 ( )
第6章 对象和类.
第 9 章 物件的建構.
项目7 面向对象高级.
成语乐园 成语乐园 执教老师:李道梅.
近年来,出现了一些制作粗糙、违背史实甚至常理的“抗战雷剧”,社会上也出现了一股“戏说”抗战剧的不良风气。
東南科技大學專用 PowerPoint 檔案 數位教材
上海市职业技能培训政府补贴项目 2014年4月8日.
C语言程序设计 李伟光.
詹天佑.
北师大版义务教育课程标准实验教科书 七年级上册讲义 第17课 先进的科学技术.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
第22章 Flex应用程序开发 在本章以前的章节中,花了很大的精力来讲解组件、数据等内容,毕竟大部分的开发者使用Flex都是受因为其强大的表示层功能吸引。本章在前面的基础上,进一步介绍Flex应用程序的开发。与前面的章节相比,本章将从整体上把握如何开发Flex应用,侧重于设计模式问题、安全、性能优化等。
浪漫 碰撞 蜕变 专题八 19世纪以来的文学艺术.
德国波恩明斯特广场修建的贝多芬铜像( 1845年)
立體四子棋 研究成員:謝旻諺、 鄭家鈞 指導老師:林屏森老師.
“三步式”网络学习法 《探究与发现》数学网络学习平台介绍
初中思想品德 规范的教学设计与案例分析.
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
三創產業學程 學群主持人:袁國榮召集人.
个人职业生涯规划.
財團法人技專校院入學測驗中心 資訊處黃建銘
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
网络游戏对大学生生活的影响 英本1班 鞠申镅 汪晨茹 沈秋云 元文杰 段祺琪.
第六章 补间动画 主讲人:马 震 人民邮电出版社.
C#程序设计 10软件1、2班 王槐彬 计算机工程学院.
《体育与健康》说课稿 课题:新兴体育舞蹈 —踢踏舞教学 北师大泉州附中 陈玉慈.
项目一 Flash CS5 工具使用技巧 授课人:叶爱英
類別與物件 Class & Object.
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
影格的類型及相關操作 新增影格 播放磁頭與影格的關係 選取影格 移除影格 影格的類型 設定關鍵影格 設定空白關鍵影格 清除關鍵影格.
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
第15章 使用定制组件 使用定制组件是在Flex提供的组件基础上创建自定义的组件模块。虽然Flex内置了大量的组件以满足不同应用的需求,但是这些组件只是用户界面中较为常见的元素。在大型的或者复杂的应用中,往往需要将这些基本元素组合,组成新的模块单元使用。对于这种情况,Flex提供了自定义组件的功能。本章主要介绍如何使用Flex编程语言创建自定义组件。
淺談Visual C# 程式設計 國立台灣師大附中 李啟龍 Jason.
Classes Lecturer: 曾學文.
CHAPTER 9 建構方法 ROBERT.
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
本單元介紹何謂變數,及說明變數的宣告方式。
Visual Studio IDE基本操作 建國科技大學 資管系 饒瑞佶.
程式設計實作.
CH09 套件 物件導向程式設計(II).
Java程序设计 第9章 继承和多态.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
辅导课程九.
第10章 声音和视频 本章主要内容: 使用声音 使用视频.
主讲:陶建平 华中科技大学网络与计算中心
電子簽核教育訓練.
第11章 系统结构与包模型模型.
臺中市政府 「WEB版公文製作系統」 承辦人作業.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
Flex.
Chapter 1 了解Flash編輯架構.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
1 打开 SQL Server 2005 安装盘,单击 SPLASH.HTA 文件进行安装,安装界面如图所示。
主编:钟元生 赵圣鲁.
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
第三章 軟體資源管理 授課老師:褚麗絹.
方格紙上畫正方形.
JAVA 程式設計與資料結構 第三章 物件的設計.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
本文档介绍 1. 如何使用同一台电脑录课; 2. 如何在其他电脑录课;
6-5 元件編輯的環境 將圖形轉換為元件後, 想要編輯元件的內容, 必須切換到該元件的編輯模式下才能進行, 元件的編輯模式有下列 3 種, 以下分別為您介紹。
指數、對數函數 數101乙 周文翔 朱哲明 張良聿.
Summary
李商隐诗两首 锦 瑟 马 嵬 夕阳无限好,只是尽黄昏。.
Presentation transcript:

第 5 章 Flash AS3.0 游戏基础

本章知识地图

5.1 ActionScript3.0 概述 2007 年 4 月,支持 ActionScript3.0 的 Adobe Flash CS3 正式版发布,随着 不断的升级和扩展, ActionScript 的功能越来越强大。 ActionScript3.0 相比过去的 ActionScript1.0 和 2.0 ,实现了完全面向对象, 功能强大,性能更加优化,它旨在方便地创建拥有大型数据集和面向对象 的可重用代码库的高度复杂程序。虽然 ActionScript3.0 包含 ActionScript 编 程人员熟悉的许多类和功能,但 ActionScript3.0 在架构上和概念上是区别于 早期的 ActionScript 版本的。

5.2 包和命名空间 1 .包 包( Packages )是具有明确的相似或相关功能的一组类的集合,同一 包中的类不需要写任何特定代码就可以相互访问,而不同包中的类在相互 访问时必须通过 import 导入,也就是要先指明要使用的类所在的位置。 包的代码通常要写到扩展名为.as 的文本文件中,可以用如下代码声明一个 包: package example{ …… }

5.2 包和命名空间 2 .命名空间 通过命名空间可以控制所创建的属性和方法的可见性。可以将 public 、 private 、 protected 和 internal 访问控制说明符视为内置的命名空间,如果 这些预定义的访问控制说明符无法满足要求,则可以创建自己的命名空间。

5.3 类和对象 公共类(软件自带的类)有数百种,可以 应用于多个方面。自定义类通常是由用户自行 编写,实现某些方面的功能。 一个自定义类通常包括类名和类体,类体 又包含类的属性和方法等几个部分。构建自定 义类时, ActionScript 文件名就是类名。任何能 够运作的 ActionScript3.0 类最少应有以下代码: 公共类和自定义类 package mypackage { // 创建包并为其命名 public class SimpleClass { // 创建自定义类 public function SimpleClass() { // constructor code }

5.3 类和对象 每一个类都需要一个构造函数( constructor ),即使是一个什么都 实现不了且没有明确定义的类也是如此。构造函数的名称与类名称相同, 当我们创建类的新实例时就会执行构造函数中包括的所有代码。 构造函数允许我们对新创建的实例进行必要的初始化,或者它也可 以不执行任何操作,这取决于类的用途。 构造函数

5.3 类和对象 要使用创建好的类,必须通过类的实例来访问。要创建类的实例, 需要执行下面的步骤。 ( 1 )使用 import 关键字导入所需的类文件,其用法格式如下所示: ( 2 )使用 “var” 和 “new” 关键字创建一个对象,用法如下: 创建实例 import 类路径. 类名称 ; var 对象 : 对象属性类型 = new 类名 ; 例如: var btn:Object=new Object(); // 声明一个名称为 btn 的对象,并将其实例化;

5.3 类和对象 1 .动态添加对象: addChild() 方法 最先使用 addChild() 方法添加到场景中的实例,将位于最底部,随 后添加到场景中的实例,将覆盖于之前所添加实例的上方。 addchild() 的用法: 动态添加、删除对象 DisplayObjectContainer.addChild(child:DisplayObject); 实现将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。子对 象将被添加到该 DisplayObjectContainer 实例中其他所有子对象的上面。

5.3 类和对象 2 .实例的深度控制: addChildAt() 方法 使用 addChildAt() 方法可以将对象添加到某一个深度进行显示。 addChildAt() 的用法: 动态添加、删除对象 DisplayObjectContainer.addChildAt(child:DisplayObject, index:int); index:int 为添加该子项的索引位置。如果指定当前占用的索引位置, 则该位置以及所有更高位置上的子对象会在子级列表中上移一个位置。

5.3 类和对象 3 .动态删除对象: removeChild() 、 removeChildAt() 方法 删除对象的方法主要有两种, removeChild() 方法和 removeChildAt() 方法。 removeChild() 方法通过指定需要删除的对象名称,将其从显示列表 中删除。有时我们并不知道要删除的对象的具体名称,可以使用 removeChildAt() 方法,通过指定要删除的对象的深度,进而从显示列表 中删除对象。 动态添加、删除对象

5.3 类和对象 4 .实例制作 —— 添加对象 要实现的效果:在舞台上已经放了蛋 糕元件,现在通过代码将 “ 火焰 ” 添加到蛋 糕的蜡烛上。 动态添加、删除对象 实例效果

5.4 使用 FlashDevelop 编辑 AS 文件 FlashDevelop 是一款开放源代码面向 FlashActionScript 的开发 IDE 。 FlashDevelop 本身采用.NET 开发,可以运行在 Windows 环境之中。 FlashDevelop 是学习、开发 Flash ActionScript 3.0 的有力工具,其最 大的特点是超强的代码提示、方便的快捷键操作、开源代码模板定制、 可扩充的插件功能,是一款优秀的辅助软件。 FlashDevelop 、 Flash 的安装与配置步骤:①安装.NET framework ; ②安装 Java SDK 1.6 以上版本;③安装 Flex SDK ;④安装 Flash CS6 ;⑤ 安装 FlashDevelop 。

5.5 应用函数 函数的定义需要使用 function 关键字,其格式如下所示: 定义函数 function 函数名 ( 参数 1: 参数类型, 参数 2: 参数类型 …): 返回类型 { // 函数体 }

5.5 应用函数 函数只是一个编写好的程序块,在没有被调用之前,什么也不会发 生。只有通过调用函数,函数的功能才能够实现,才能体现出函数的价 值和作用。 函数的调用可以分为一般的函数调用方法以及嵌套和递归调用函数 的方法。 对于没有参数的函数,可以直接使用该函数的名字后面跟一个圆括 号(它被称为 “ 函数调用运算符 ” )来调用。 调用函数

5.6 ActionScript3.0 事件处理 事件侦听是 Flash 互动的核心,在 AS3.0 中使用 addEventListener() 方法来侦听事件并触发响应。要将事件附加到事件处理程序,需要使用 事件侦听器,事件侦听器等待事件发生,事件发生时就会运行对应的事 件处理函数。我们可以将事件侦听的语言格式用中文抽象为: 认识事件侦听机制 被侦听的对象. addEventListener( 需要侦听的事件, 当该事件发生后需要触发的函数名 ) ;

5.6 ActionScript3.0 事件处理 事件发生时运行的特殊函数称为事件处理函数,事件处理函数的格式如 下: 与 addEventListener() 方法相对应的,是移除事件侦听器的 removeEventListener() 方法。当某个事件侦听器不再有用时,可以使用 removeEventListener() 方法将该事件侦听器移除。 认识事件侦听机制 function 函数名 (event: 该事件的数据类型 ):void { 事件触发后执行的代码 }

5.6 ActionScript3.0 事件处理 实例制作:在舞台上已经放了 3 个 flowerpot (花盆)元件,现在,通 过代码将 “ 鲜花 ” 插入到 “ 花盆 ” 中 。 使用鼠标事件 实例效果

5.6 ActionScript3.0 事件处理 键盘的敲击事件是由舞台 stage 来感知的,所以应该为 stage 添加键盘事 件侦听机制。 使用键盘事件 实例效果 实例制作:通过键盘的上、下、左、 右四个方向键控制 fish 对象的移动。

5.6 ActionScript3.0 事件处理 1 .使用 Event.ENTER_FRAME 事件 Event.ENTER_FRAME 事件是以帧 频触发,持续执行,即使时间轴停止, 事件也仍然会发生,只有删除此事件控 制或者移除响应动作的对象,才能停止 该事件。 在游戏中触发连续动作 对象.addEventListener(Event.ENTER_FRAME,enterFrameHandler) // enterFrameHandler 为事件处理函数 实例效果

5.6 ActionScript3.0 事件处理 2 .使用 Timer 类 Timer 类是计时器的接口,实现按指定的时间间隔调用计时器事件。使用 Timer 类, 需要执行下面的步骤: ( 1 )创建 Timer 类的实例,并告诉它每隔多长时间调用一次计时器事件以及调用 的次数。 ( 2 )为 timer 事件添加事件侦听器,以便将代码设置为按计时器间隔运行。 ( 3 )启动计时器。 在游戏中触发连续动作 var myTimer:Timer =new Timer(delay:Number, repeatCount:int); myTimer.start(); myTimer.addEventListener(TimerEvent.TIMER, timerHandler);

5.7 创建 ActionScript3.0 游戏框架 游戏框架的好处之一就是可以有效地组织代码段和游戏中的函数,基于游戏 框架可以很容易地写出易于扩展的游戏代码。 1 .状态循环 游戏大概有三种状态,一个是初始状态,一个是游戏状态,还有一个是游戏 结束状态。根据游戏运行的需要来确定它当前的运行状态,这个就是状态循环。 2 .游戏频率 游戏频率也可以看作是每隔一段时间来检查游戏状态的机制。 gameLoop() 是 游戏执行的循环逻辑,这个游戏通过 ENTER_FRAME 事件来反复调用 gameLoop() 函数。 3 .事件模型 initGame() 函数定义了这个游戏的事件模型。

5.7 创建 ActionScript3.0 游戏框架 程序流程的简单描述。

本章小结 类和对象是面向对象编程最核心的概念,类是为某种对象定义的变量和 方法的集合,使用 addChild() 与 addChildAt() 方法可以动态地添加对象,使 用 removeChild() 与 removeChildAt() 方法可以动态地删除创建的对象。 事件侦听是 Flash 互动的核心,在 AS3.0 中使用 addEventListener() 方法来 侦听事件并触发响应,本章重点介绍了鼠标和键盘事件的运用。 游戏开发中,有时候动作的执行是需要持续进行的,在 AS3.0 中可以通 过 Event.ENTER_FRAME 事件和设置 Timer 类来实现触发连续动作。 游戏框架的建立有助于理清游戏的架构,有效地组织代码和游戏中的函 数,通过本章的学习,利用游戏框架可以制作出具体的游戏案例。

思考与拓展 1 .什么是类?自定义类的一般格式是怎样的? 2 .创建实例的一般格式?如何动态添加、删除对象? 3 .事件侦听的一般格式?如何定义事件处理函数? 4 .如何在游戏中触发连续动作? 5 .尝试自己编写出 AS3.0 游戏的一般框架。