刘德凡

个人博客
http://www.cqzjw.com/

Flash ActionScript3
小游戏范例

分类;Flash  组件 Flex rair  
flash小游戏、网络游戏、web.net、FlexAs3、Arair桌面、

录像教程

学习规范  系统
深入浅出

小游戏范例

  • 创建元件的基本方法
  • 添加到显示列表
  • 侦听器(舞台、影片、键盘、鼠标、按钮)
  • 实例对象.侦听(对象.行为,处理事件)
  • 创建影片和创建影片副本及数组
  • 处理事件
  • 碰撞、拖拽影片
  • 数学三角函数
  • 加速度和缓冲
  • ...........
  • .....
  • ...

 

 
FlashAs3组件
应用范例

网站web应用范例

  • 创建xml数据
  • 连接Apache服务器及mysql数据库php脚本
  • 新用户注册/登陆TextInput/Button
  • 发布文章TextArea
  • 显示表格DataGrid

 

培训flash人才,引您入门,搞一搞小的游戏学习As3语言,和做梦幻精彩的flash网站。培训地点在重庆南坪商业大楼9楼联系66699904
 

应用flashAs3组件的方法

如果对编写 ActionScript 还不够熟练,您可以向文档添加组件,在"属性"检查器或"组件"检查器中设置其参数,然后使用"行为"面板处理其事件。

您无需编写任何 ActionScript 代码,就可以将"转到网页"行为附加到一个 Button 组件,用户点击此按钮时会在 Web 浏览器中打开一个 URL。

如果希望创建功能更加强大的应用程序,则可通过动态方式创建组件,使用 ActionScript 在运行时设置属性和调用方法,还可使用事件侦听器模型来处理事件。

组件是带参数的影片剪辑,您可以修改它们的外观和行为。组件可以是一个简单的用户界面控件(如 RadioButton 或 CheckBox),也可以包含内容(如 List 或 DataGrid)。

组件使您可以方便而快速地构建功能强大且具有一致外观和行为的应用程序。您可以使用 Flash 组件实现这些控件,而不用创建自定义按钮、组合框和列表。只需将这些组件从"组件"面板拖到应用程序文档中即可。您还可以方便地自定义这些组件的外观和直观感受,从而适合您的应用程序设计。

ActionScript 3.0 组件体系结构包括所有组件基于的类、允许您自定义外观的外观和样式、事件处理模型、焦点管理、辅助功能接口等等。

组件类型
在安装 Flash CS3 时安装 Flash 组件。

ActionScript 3.0 组件包括下列用户界面 (UI) 组件:

UIComponent

Button List TextArea

CheckBox NumericStepper TextInput

ColorPicker RadioButton TileList

ComboBox ProgressBar UILoader

DataGrid ScrollPane UIScrollBar

Label Slider

还包括下列组件和支持类:

FLVPlayback 组件 (fl.video.FLVPlayback),它是基于 SWC 的组件。

FLVPlayback 自定义 UI 组件,基于 FLA,同时使用于 FLVPlayback 组件的 As 2.0 和 As 3.0 版本。

FLVPlayback Captioning 组件,为 FLVPlayback 提供关闭的字幕。

一,加载按钮的方法和应用

1 可以将组件的实例从"库"面板或"组件"面板拖到舞台。
选择"窗口">"组件"。
双击"组件"面板中的组件,或将组件拖到舞台。
在舞台上选择该组件。
如果看不到"属性"检查器,请选择"窗口">"属性">"属性"。
在"属性"检查器中,输入组件实例的实例名称。
单击"参数"选项卡,然后为实例指定参数。
显示了 Button 组件的"属性"检查器。

选择"控制">"测试影片"或按 Ctrl+Enter 编译文档并查看设置的结果。

可以更改组件的颜色和文本格式,方法是设置组件的样式属性,或通过编辑组件的外观自定义其外观。

参数 -- 组件 取个名字 -- 右边 label=确定
再选择"控制">"测试影片"看看结果。

2 在运行时添加组件
将组件添加到"库"中,请将组件从"组件"面板拖到"库"面板中。
创建组件的一个实例名:myButton

import fl.controls.Button; //指定包名称和类名称
var myButton:Button = new Button(); ///创建一个名为 myButton 的 Button 实例:
addChild(myButton); ///组件实例添加到舞台或应用程序容器

使用组件的 API 动态指定组件的大小和在舞台上的位置、侦听事件,并设置属性以修改组件的行为。

myButton.x = 100; ///实例的 x 坐标位置
myButton.y = 100;

从文档中删除组件:
在"库"面板中,选择组件的元件。
单击"库"面板底部的"删除"按钮,或从"库"面板菜单中选择"删除"。
重复这些步骤以删除所有与组件关联的资源。
从显示列表中删除组件
可以使用 removeChild(myButton) 方法将组件从显示对象容器及其显示列表中删除。

关于事件侦听器--事件处理模型
所有的情况下都使用 addEventListener()方法可以在作为事件流一部分的任意对象上进行调用,事件侦听器只能是函数或方法。

myButton.addEventListener(MouseEvent.CLICK, 处理事件名); // 侦听鼠标的单击行为

function 处理事件名(event:MouseEvent):void { // 函数过程
// 处理事件
}
当前按钮实例myButton名, 正在侦听其每个事件的函数的列表。
MouseEvent.CLICK 鼠标单击事件
evend:事件源对象。
void运算符, 解释为“无返回值”,计算表达式,然后放弃返回其值。

应用程序终止用 myButton.removeEventListener(MouseEvent.CLICK, 处理事件名)删除侦听器, 说明侦听器不工作。

二,加载标签,按钮,输入文本框,文本TextArea
组件从"组件"面板里的“label”拖到"舞台"中。实例名= tta 和 ttb ,共二个。
再拖 “TextInput”实例名=ttc
再拖 “Button”实例名=qdbtn
再拖 “TextArea”实例名=qhshu

插入图层取名as,选取第一帧,打开动作里写代码。

tta.text = String(Math.floor(Math.random() * 100 +1 ));
ttb.text = String(Math.floor(Math.random() * 100 +1)) ;

测试会出现 两个数字,正确。random是随机数 fioor求整 String转成字符型

写入按钮的侦听和处理事件。
qdbtn.addEventListener(MouseEvent.CLICK, qdbtnCk); ///click按钮事件的侦听器
function qdbtnCk(event:MouseEvent){
// 处理事件
}
处理事件里要完成一些事情。

求和写一个数字变量。
var ccc:Number = Number(tta.text)+Number(ttb.text);
要判断输入ttc是不是求和的值,给出答案。
if(ttc.text == ccc.toString()){
qhshu.text = "正确";
}else{
qhshu.text = "错误";
}
全部代码如下;
tta.text = String(Math.floor(Math.random() * 100 +1 ));
ttb.text = String(Math.floor(Math.random() * 100 +1)) ;
qdbtn.addEventListener(MouseEvent.CLICK, qdbtnCk);
function qdbtnCk(event:MouseEvent) {
var ccc:Number = Number(tta.text)+Number(ttb.text);
if (ttc.text == ccc.toString()) {
qhshu.text = "正确";
} else {
qhshu.text = "错误";
}
}
测试,是做的一到加法题,很简单的,有个问题只做一次,可不可以做10-8道的题,最后给出成绩。

教程flashAs3小游戏过程

一,创建实例(角色)

创例1;在舞台上画一个物件(矩形、圆型、图片、字符等等),按F8转换为影片元件,在属性里填上自己认为好记和有代表性的实例名“myball”。

创例2;按F8转换为影片元件后,在自己的库中选取点右键--选“链接”,勾选“为ActionScript导出”,填上类名“myball”。注意要把舞台上的物件删除,舞台是空的。

创例3;没有帧概念的Sprite()类来创建,用语句写画物件(矩形、圆型,填充色)。把它当成一个容器。

创例4;专门的字符容器TextField()类来创建,用于字符类。

创例5;文档类方法,与fla文件分开是以类的方法写,以backer包里的class类文件创建和属性及方法。步骤建一个ActionScript文件存为.as文件,也就是代码文件。选择“文件”->“新建”->“ActionScript 文件”,点击确定后创建一个脚本文件。

二,实例列表

是显示实例的一种方法在列表中,也就是显示实例,addChild(myball);也可以说是加入到列表里。如果不要了就可以用removeChild(myball)从列表里删除。

用创例1 可以这样写;myball.x=100;myball.y=100;

用创例2 可以这样写;var aaaa:myball=new myball();///自定义aaaa实例名,myball成了自定义类
aaaa.x=100;
aaaa.y=100;
addChild(aaaa);

用创例3 可以这样写;var bbb:Sprite = new Sprite(); ///绘制一个黑色圆
bbb.graphics.lineStyle(2,0x0000ff);
bbb.graphics.beginFill(0x000000);
bbb.graphics.endFill();
bbb.x=100;
bbb.y=100;
addChild(bbb);

用创例4 可以这样写; var myText:TextField=new TextField(); ////存放文本的容器
myText.text="你好欢迎光临!"; ///文本存放在文本域内
addChild(myText); ///添加到显示列表上

用创例5 可以这样写;package //myfanMc.as文件名同类名
{
import flash.display.MovieClip;
import flash.text.TextField

public class myfanMc extends MovieClip
{

public function myfanMc()
{
var myText:TextField=new TextField();
myText.text="你好欢迎光临!";
addChild(myText);
}
}
}

上面的这些语句写在那里,在时间轴上加一层叫“as”层名,专门来写语句的地方,当然是在第一帧上。学习的过程中一定要测试上面的例子,那一句是做什么的用///注释说明。结果是什么注好笔记。

要测试创例5的方法,是以类方法写的,修改在as文件里,注意的地方是fla文件的属性里有个文档类写上as的文件名就有连接了。存放在同一个文件夹里。

三,侦听器与事件

添加侦听器;[实例名].addEventListener(对象.行为,处理事件)
删除侦听器;[实例名].removeEventListener(对象.行为,处理事件)

[实例名] = 影片实例名,按钮实例名,键盘,stage舞台

对象.行为 = 鼠标.单击,语句是(MouseEvent.CLICK,处理事件)
= 键盘.按下, (KeyboardEvent.KEY_DOWN,处理事件)
= 时间对象 (TimerEvent.TIMER, 处理事件)
= 进入工作状态 (Event.ENTER_FRAME, 处理事件)

鼠标的行为有;单击,双击,指上,滑过,离开,滚轮,单击CLICK,双击DOUBLE_CLICK,按下MOUSE_DOWN,弹起MOUSE_UP,划过ROLL_OVER,划出ROLL_OUT,移动MOUSE_MOVE等。

键盘的行为有;按下,抬起

处理事件 = 实际是处理函数;function 处理事件(响应接受){处理语句}

响应接受 = 鼠标; event:MouseEvent
响应接受 = 键盘代码;event:KeyboardEvent
响应接受 = 工作状态;event:Event
响应接受 = 时间对象;event:TimerEvent

讲起枯燥那就来做一次应用是怎么写的。按创例1 ;
舞台上画一个圆--f8 转成影片,在属性里实例名写上myball就可以了。加上一层在1帧写;
myball.x = 20;
myball.y = 100;
myball.addEventListener(MouseEvent.CLICK,aaaa);

function aaaa(event:MouseEvent){
myball.x += 20;
myball.y = 100;
}

测试;在舞台上点击一次影片实例就向右移动20个像素, 看起来是一点它就跳一步。点一下动一下就是交互事件。

四 动画影片

改一下为“工作状态”和“响应接受”。
MouseEvent.CLICK,aaaa = Event.ENTER_FRAME,aaaa
event:MouseEvent = event:Event

修改代码如下;
myball.addEventListener(Event.ENTER_FRAME,aaaa);

function aaaa(event:Event){
myball.x += 20;

看看效果,它会一直向右走。这就是动画事件效果。

如果一直向右走出边界如何处理。有1、 是删除影片停止侦听。有2、 是又从左边出来。
下面加一句;stage.stageWidth是舞台的宽度。
if(myball.x > stage.stageWidth){myball.x = 0 ;}

下面加一句;removeEventListener(Event.ENTER_FRAME,aaaa)删除侦听或删除影片removeChild(实例名)
if(myball.x > stage.stageWidth){removeEventListener(Event.ENTER_FRAME,aaaa);}//删除侦听
if(myball.x > stage.stageWidth){removeChild(myball);}///删除影片

五 再造动画影片

1、把myball影片改一下。打开编辑元件加一层,画上走路的脚,大慨6帧移动的姿态。

2、或者改成方矩形再加上炮干,就是坦克。应用时旋转角度。

3、myball的1帧stop();接着下做爆炸效果,大慨5-6帧。鼠标单击播放爆炸效果。