论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

as 3.0 事件 声明

文章类别:Flash AS编程 | 发表日期:2008-10-6 17:44:01


版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://wxsr.blogbus.com/logs/14458227.html

as3.0为我们带来了一个强大的事件机制,这是我们的一个福音;但相当一部分人对于这个实用的机制可能还只处于了解阶段;

下面我结合下 自定义的loadVar类  为大家介绍下怎么使用这个强大的事件机制为自己写的类声明一个事件吧~

例子是个简单的小说阅读器

 在loadVar类中我声明了两个事件:COMPLETE事件跟IOERROR事件

看了脚本相信大家也发现了~我的这两个事件都是基于URLLoader对应的两个事件触发后通过dispatchEvent将事件调度到事件流中的那样的话我们就可以间接获取URLLoader的事件返回的值了;

 

由于不能上传附件的原因请大新建一个fla文件

在场景中放一个名为txt的动态文本事例;两个分别为btn1跟btn2的mc元件

并将loadVar类以loadVar.as为文件名拷贝到org/net目录下

package org.net{

 import flash.events.*;
 import flash.net.*;

 public class LoadVar extends EventDispatcher {

//COMPLETE事件

  public static  const COMPLETE:String = "loadVarComplete";
//IOERROR事件  

public static  const IOERROR:String = "loadVarIoError";

  private var __sender:URLRequest;
  private var __loader:URLLoader;
  public var result;

  public function LoadVar() {
  }
  public function load(link) {
   __sender = new URLRequest(link);
   __sender.method = URLRequestMethod.POST;
   __loader = new URLLoader();
   __loader.dataFormat = URLLoaderDataFormat.TEXT;
   __loader.load(__sender);
   __loader.addEventListener("ioError" ,ioErrFunc);
   __loader.addEventListener(Event.COMPLETE,completeFunc);
  }
  private function completeFunc(re:Event) {
   result=re.target.data;
   dispatchEvent(new Event(LoadVar.COMPLETE));
  }

  private function ioErrFunc(err:Event) {
   result=err.target.data;
   dispatchEvent(new Event(LoadVar.IOERROR));
  }

 }
}

 //fla文件 
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
System.useCodePage = true;
var page=[0,0,0];
txt.text="code by wxsr \n http://wxsr.blogbus.com/\n";

import org.net.LoadVar;
var load_:LoadVar=new LoadVar();


var num=0;
btn1.addEventListener(MouseEvent.CLICK,goFunc);
btn2.addEventListener(MouseEvent.CLICK,goFunc2);
//注册事件

load_.addEventListener(LoadVar.COMPLETE, resultFunc);
load_.addEventListener(LoadVar.IOERROR, resultFunc);
load_.load("http://www.1stbook.net/sfw/nk/wai/000.html");


function setFormat() {
 var format:TextFormat = new TextFormat();
 format.color = 0x333333;
 format.size = 15;
 txt.defaultTextFormat = format;
}

function setpage(num) {
 var tmp_arr=String(num).split("");
 for (var i=0; i<page.length; i++) {
  if (i>tmp_arr.length-1) {
   break;
  } else {
   page[page.length-1-i]=tmp_arr[i]
    ;
  }
 }
 var str=page.join("");
 return str;
}

function goFunc(event:MouseEvent) {
 num-=1;
 if (num<=0) {
  num=0;
 }
 setFormat();
 txt.appendText("\n loading.............");
 load_.addEventListener(LoadVar.COMPLETE, resultFunc);
 load_.addEventListener(LoadVar.IOERROR, resultFunc);
 trace(num,"http://www.1stbook.net/sfw/nk/wai/"+setpage(num)+".html");
 load_.load("http://www.1stbook.net/sfw/nk/wai/"+setpage(num)+".html");

}
function goFunc2(event:MouseEvent) {
 num++;
 if (num>=40) {
  num=40;
 }
 setFormat();
 txt.text=("\n loading.............");
 load_.addEventListener(LoadVar.COMPLETE, resultFunc);
 load_.addEventListener(LoadVar.IOERROR, resultFunc);
 trace(num,"http://www.1stbook.net/sfw/nk/wai/"+setpage(num)+".html");
 load_.load("http://www.1stbook.net/sfw/nk/wai/"+setpage(num)+".html");

}

function resultFunc(result:Event) {
 if (result.target.result==undefined) {
  txt.text="没有该章节!";
 } else {

  txt.text=("\n"+result.target.result);
 }
}

上一篇:{技巧}位图梯形化(as3.0) 人气:2455
下一篇:{技巧}mp3播放器 (as 3.0) 人气:4083
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058