Flash AIR实例教程.docx
- 文档编号:23425682
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:139
- 大小:362.24KB
Flash AIR实例教程.docx
《Flash AIR实例教程.docx》由会员分享,可在线阅读,更多相关《Flash AIR实例教程.docx(139页珍藏版)》请在冰豆网上搜索。
FlashAIR实例教程
FlashAIR实例教程第一课 创建HelloAIR程序
我们把代码写在外部文件中。
新建一个FLASH AIR文档,保存为HelloAIR.fla,在文档类中填写HelloAIR,再新建一个AS文件,保存在同目录中,名为HelloAIR.as,在此文件中输入以下代码:
package{
importflash.display.MovieClip;//导入所需要的类
publicclassHelloAIRextendsMovieClip{
//声明构造函数
publicfunctionHelloAIR():
void{
trace("HelloAIR!
");
}
}
}
Ctrl+Shift+Enter调试影片,你就可以看到效果了。
第二节 TextField和TextArea的应用
新建一个FLASH AIR文档,保存为Test2.fla,文档类中填写Test2,因为我们要用到TextArea这个组件,所以我们再从组件面板中将TextArea组件拖入库中。
再新建一个AS文件,在其中输入以下代码:
package{
//导入所需要的类
importflash.display.MovieClip;
importflash.text.TextField;
importfl.controls.TextArea;
//类定义开始
publicclassTest2extendsMovieClip{
//声明类属性
privatevarmytxt1:
TextField;
privatevarmytxt2:
TextArea;
//启动构造函数
publicfunctionTest2():
void{
//调用下面定义的方法
addtxt1();
addtxt2();
}
privatefunctionaddtxt1():
void{
mytxt1=newTextField();
mytxt1.x=200;
mytxt1.y=100;
mytxt1.width=100;
mytxt1.height=50;
mytxt1.text="你好,AIR!
";
addChild(mytxt1);
}
privatefunctionaddtxt2():
void{
mytxt2=newTextArea();
mytxt2.setSize(100,50);
mytxt2.editable=false;
mytxt2.text="你好,AIR!
";
mytxt2.x=300;
mytxt2.y=100;
addChild(mytxt2);
}
}
}
Ctrl+S保存,Ctrl+Shift+Enter调试影片就可以看到效果了。
效果图:
这些代码都是很简单的,我只想说的一个就是addChild语句,这是将对像加载到相应的实例中的,因为我们是为场景写的包,所以addChild(mytxt2)是将mytxt2加载到场景中的,如果有一个实例名叫m_mc的影片剪辑,那么m_mc.addChild(mytxt2)则是将mytxt2加载到m_mc影片剪辑中。
FlashAIR实例教程第二课 载入位图并访问位图原始数据
FlashAIR实例教程
载入位图并访问位图原始数据
在flash中,编程控制的就是显示对象,而在控制显示对象时我们常常用的就是从外部载入位图并访问位图的原始数据而进行相关的操作。
新建一个AIR文档,保存(保存目录中没有中文字符),文档类中填写src.LoadBitmap,再新建一个as文件,保存为LoadBitmap.as,项目视图如下:
在LoadBitmap.as中输入以下代码:
packagesrc
{
/**
*...
*@authorJaja
*/
//导入所需要的类
importflash.display.Bitmap;
importflash.display.BitmapData;
importflash.display.MovieClip;
importflash.events.Event;
importflash.display.Loader;
importflash.geom.Point;
importflash.geom.Rectangle;
import.URLRequest;
publicclassLoadBitmapextendsMovieClip
{
publicfunctionLoadBitmap():
void
{
//建立以loader为引用的Loader对象
varloader:
Loader=newLoader;
//侦听loader对象的LoaderInfo属性
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,bitmapLoaded);
//开始加载
loader.load(newURLRequest("test.jpg"));
}
//事件方法执行
privatefunctionbitmapLoaded(event:
Event):
void{
//生成以bitmap为引用的Bitmap对象
varbitmap:
Bitmap=Bitmap(event.target.loader.content);
//添加到舞台
addChild(bitmap);
//执行复制函数
copyBitmap(bitmap);
}
privatefunctioncopyBitmap(bit:
Bitmap):
void{
//声明新的BitmapData对象并指定宽高
varnewBitmapData:
BitmapData=newBitmapData(bit.width,bit.height);
//复制像素
newBitmapData.copyPixels(bit.bitmapData,newRectangle(0,0,bit.width,bit.height),newPoint(0,0));
//从新生成Bitmap
varnewBitmap:
Bitmap=newBitmap(newBitmapData);
//调整新位图的X坐标
newBitmap.x=bit.width+10;
//添加到舞台
addChild(newBitmap);
}
}
}
Ctrl+Enter测试影片就可以看到效果了。
FlashAIR实例教程第三课 从外部加载声音并播放
从外部加载声音并播放
flash是多媒体开发工具,所以一定要会用flash来操作声音,下面我们就用flash来载入并播放声音。
新建一个fla文档,保存为LoadSound.fla,文档类填写src.LoadSound,新建一个AS文件,保存在src目录下名为LoadSound.as,项目视图如下:
在LoadSound.as中输入以下代码:
packagesrc
{
/**
*...
*@authorJaja
*/
importflash.display.MovieClip;
importflash.events.Event;
importflash.events.IOErrorEvent;
import.URLRequest;
importflash.media.Sound;
publicclassLoadSoundextendsMovieClip
{
privatevarmysd:
Sound=newSound;
publicfunctionLoadSound():
void
{
mysd.load(newURLRequest("test.mp3"));
mysd.addEventListener(Event.COMPLETE,loaded);
mysd.addEventListener(IOErrorEvent.IO_ERROR,ioerror);
}
privatefunctionioerror(event:
IOErrorEvent):
void{
trace("文件路径错误")
}
privatefunctionloaded(event:
Event):
void{
mysd.play();
}
}
}
若要运行此程序,需要在同目录下有一个名为test.mp3的MP3文件。
好了,Ctrl+Shift+Enter测试一下效果吧,如果同目录下没有这个MP3文件,FLASH的输出面板会显示“文件路径错误”。
FlashAIR实例教程第四课 加载外部数据
加载外部数据
新建一个flashair文档,保存为LoadData.fla,从组件库中拖出一个TextArea组件到库中,文档类中填写src.LoadData,再新建一个as文件,保存在src目录下,名为LoadData.as。
代码结构如下:
在LoadData.as中输入以下代码:
packagesrc
{
/**
*...
*@authorJaja
*/
importflash.display.MovieClip;
import.URLRequest;
import.URLLoader;
import.URLLoaderDataFormat;
importflash.events.Event;
importflash.events.IOErrorEvent;
importfl.controls.TextArea;
importflash.text.TextFormat;
importflash.system.System;
publicclassLoadDataextendsMovieClip
{
privatevarmyTxt:
TextArea;
publicfunctionLoadData():
void
{
System.useCodePage=true;
buildUI();
startLoad();
}
privatefunctionbuildUI():
void{
myTxt=newTextArea;
myTxt.setSize(550,400);
addChild(myTxt);
}
privatefunctionstartLoad():
void{
varul:
URLLoader=newURLLoader;
ul.addEventListener(Event.COMPLETE,loaded);
ul.addEventListener(IOErrorEvent.IO_ERROR,urlError);
ul.dataFormat=URLLoaderDataFormat.TEXT;
ul.load(newURLRequest("test.txt"));
}
privatefunctionloaded(event:
Event):
void{
myTxt.setStyle("textFormat",getTextFormat());
myTxt.text=event.target.data;
}
privatefunctionurlError(event:
IOErrorEvent):
void{
myTxt.setStyle("textFormat",getTextFormat(12,0xFF0000));
myTxt.text="找不到文件!
";
}
privatefunctiongetTextFormat(size:
Number=12,color:
uint=0x000000):
TextFormat{
vartextFormat:
TextFormat=newTextFormat;
textFormat.size=size;
textFormat.color=color;
returntextFormat;
}
}
}
Ctrl+Enter测试一下影片就可以看到效果了,要运行此例,请在fla文件同目录下放一个test.txt文件,flashair程序将读取此文件的内容。
其中ul.dataFormat=URLLoaderDataFormat.TEXT这句话,你可以设置以何种方式来读取这个文件。
URLLoaderDataFormat.TEXT表示以文本形式来读取。
URLLoaderDataFormat.BINARY表示以二进制形式来读取。
URLLoaderDataFormat.VARIABLES表示以变量形式来读取。
好了,看一下我们的效果图:
如果fla同目录下存在test.txt文件,则效果图如下:
如果没有test.txt,则效果图如下:
FlashAIR实例教程第五课 AIR客户端登陆程序
AIR客户端登陆程序
在做有些AIR程序时,我们会需要从桌面客户端登陆服务器,比如我们做一个聊天工具,或者用AIR做网络游戏,这时我就需要登陆服务器了,这一节课我们了解一下如何登陆到服务器。
打开FlashCS3,新建一个AIR文档,在文档类中填写src.LoadURLVariables,保存为LoadURLVariables.fla,然后在src目录下新建一个LoadURLVariables.as。
项目视图如下:
在LoadURLVariables.as文件中输入以下代码:
packagesrc
{
/**
*...
*@authorJaja
*/
importflash.display.MovieClip;
importflash.display.SimpleButton;
import.URLRequest;
import.URLVariables;
import.URLLoader;
import.URLLoaderDataFormat;
import.URLRequestMethod;
importflash.events.MouseEvent;
importflash.events.Event;
importflash.events.IOErrorEvent;
importflash.events.SecurityErrorEvent;
importflash.text.TextField;
publicclassLoadURLVariablesextendsMovieClip
{
publicfunctionLoadURLVariables():
void
{
addListeners();
}
privatefunctionaddListeners():
void{
login_mc.subMit_btn.addEventListener(MouseEvent.CLICK,submit);
}
privatefunctionsubmit(event:
MouseEvent):
void{
if(login_mc.userName_txt.text==""){
msg_txt.text="请输入用户名";
}elseif(login_mc.passWord_txt.text==""){
msg_txt.text="请输入密码";
}else{
varvariables:
URLVariables=newURLVariables;
variables.userName=login_mc.userName_txt.text;
variables.passWord=login_mc.passWord_txt.text;
sendReq("variables);
msg_txt.text="正在登陆中...";
}
}
privatefunctionsendReq(url:
String,vari:
URLVariables):
void{
varreq:
URLRequest=newURLRequest(url);
req.data=vari;
req.method=URLRequestMethod.POST;
varul:
URLLoader=newURLLoader;
ul.addEventListener(Event.COMPLETE,loaded);
ul.addEventListener(IOErrorEvent.IO_ERROR,urlError);
ul.addEventListener(SecurityErrorEvent.SECURITY_ERROR,seError);
ul.load(req);
}
privatefunctionloaded(event:
Event):
void{
switch(String(event.target.data)){
case"0":
msg_txt.text="用户名或密码错误";
break;
case"1":
msg_txt.textColor=0x0000FF;
msg_txt.text="登陆成功";
login_mc.visible=false;
break;
}
}
privatefunctionurlError(event:
IOErrorEvent):
void{
msg_txt.text="找不到地址";
}
privatefunctionseError(event:
SecurityErrorEvent):
void{
msg_txt.text="服务器拒绝访问";
}
}
}
若要运行此例,我们还要对fla文件进行设计,当然为了和大家更好的交流与学习,我提供fla文件下载。
下载fla文件:
好了,根据此fla文件,你可以测试这个AIR程序了,测试时用户名是fsnhf,密码上fsnhf。
测试所用的php代码如下:
php
$userName=$_POST["userName"];
$passWord=$_POST["passWord"];
if($userName=="fsnhf"&&$passWord=="fsnhf"){
echo"1";
}else{
echo"0";
}
FlashAIR实例教程小结一下
小结一下
前面几课讲的都是AS3的加载,至于与php通信的那一课讲的也是从外部加载数据的,不同的是这个数据是由php程序动态生成的,所以就显得是在与php通信了。
关于加载外部数据的一般思路是:
1.实例化(new)一个URLLoader或Loader对象用于加载外部数据。
说明:
URLLoader和Loader是有区别的,而且区别很大,不要乱用。
URLLoader主要是用于加载外部文本、变量、和二制数据的。
Loader是用于加载外部图片和swf文件的。
2.添加这个对象的侦听器,包括侦听加载完成,加载错误(包括找不到指定的地址(IOErrorEvent.IO_ERROR)和安全沙箱冲突),如果要加载的对象比较大,加载过程比较慢,我们还要侦听加载过程中的事件(ProgressEvent),用此事件来访问加载的进度。
说明,如果是用Loader来加载图片或swf文件的话,侦听器要添加在Loader.contentLoaderInfo上,用法可以参考前几课中的示例。
3.用load方法开始加载。
以上这些都是用AS3来做的最简单的程序,flash是一个多媒体工具,当然AS3语言拥有控制多媒体的特性,我们学习AS3语言的目的就是做多媒体应用程序,这些多媒体应用程序包括网络多媒体应用和桌面多媒体应用。
网络多媒体应用就是插入在网页中的swf文件,桌面多媒体应用当然指的就是我们学的AIR程序。
前些日子,微软的SilverLight炒得很火,可是经过一段时间的对比我们明显觉得SilverLight比flashflex差得很远,虽然SilverLight更标准,但任何一个标准的最终决定者是用户,SilverLight虽然很强大,但没有用户,它甚至不能抢到adobe用户的任何分额,主要原因是用户没有足够的理由放弃flashflex去使用SilverLight。
当然不排除SilverLight会在以后的发展中超过flashflex的可能性,面对这种情况,特别是对于我这一类的flash开发者来说是否是很严重的事呢?
我这一类的flash开发者会不会因此丢掉饭碗呢?
就是这种危机感来促使我们学习进步。
但事实上我们除了感到危机,更多的一方面是看到希望,那是因为我们本来就不满足于现状,我是从FlashMX开始学起的,一路走来,我感觉flash的功能非常有限,这是flash的严重不足,到了现在的AS3时代,我们才看到希望,尤其是AIR出世后,我们更看到希望,虽然AIR目前并没能有什么商业用途,但我们已经能够看出她的潜力了。
到目前为止,我们依然可以看到flash的不足之处,就是说我们仍然不满足于目前的flash,在这个时候出现一个强大的SilverLight,对于flash来说是一个严
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Flash AIR实例教程 AIR 实例教程
![提示](https://static.bdocx.com/images/bang_tan.gif)