自己整理的 actionscript3.0 常用脚本

莱鸟献丑请多多指教

/
//获取URL参数  xxx.swf?dataurl=name
var d:String=loaderInfo.parameters["dataurl"];//获取URL地址参数

//播放全屏
import flash.display.StageDisplayState;
import flash.system.fscommand;
this.stage.displayState=StageDisplayState.FULL_SCREEN;

//FLASH AS3网站分辨率自适应
//不变形处理
stage.scaleMode=StageScaleMode.NO_SCALE;
//左上角对齐
stage.align=StageAlign.TOP_LEFT;
//自定义一个函数来控制四个MC的位置
function myfunction() {
 //A的位置
 A.x=0;
 A.y=0;
 //B的位置
 B.x=stage.stageWidth-B.width+100;
 B.y=0;
 //C的位置
 C.x=0;
 C.y=stage.stageHeight-C.height;
 //D的位置
 D.x=stage.stageWidth-D.width;
 D.y=stage.stageHeight-D.height;
}
//对舞台的改变进行侦听
stage.addEventListener(Event.RESIZE,test);

function test(e:Event):void {
 //舞台改变时,重新设置MC的位置
 myfunction();
}
//设定MC位置
myfunction();
///
//元件帧数相关
mc.totalFrames //可以获取导入swf的总帧数
mc.currentFrame //可以获取swf播放的当前帧
mc.nextFrame //播放下一帧
mc.prevFrame //播放上一帧
///
// 冒泡机制
import flash.events.*;
mc.addEventListener(MouseEvent.CLICK,mcfunction);
mc.btn.addEventListener(MouseEvent.CLICK,btnfucntion);
function mcfunction(event:MouseEvent) {
        trace("mc click");
}
function btnfucntion(event:MouseEvent) {
        trace("btn click");
        event.stopPropagation();//修改在此处。简单一句,解决问题
}
///
//获取对象最高层设置mc的深度
var topIndex:uint=mc.numChildren-1;
mc.setChildIndex(mc,topIndex);
///
//获取当前触发事件的元件名称
function Handler(Evt:MouseEvent):void {
var str:String=Evt.currentTarget.name;
}

//将划过元件的指针变成手型
//buttonMode设置Sprite是否具备按钮行为。
//useHandCursor 设置是否鼠标手形。默认为true。buttonMode=false的时候,useHandCursor不起作用
//mouseChildren 设置子元素是否与鼠标交互。如果不希望子元素干扰鼠标交互,设为false。
var mc:MovieClip=new MovieClip();
mc.buttonMode=true;
mc.useHandCursor=true;
///
//Timer循环
import flash.events.TimerEvent;
var timer:Timer=null;
function TimerTime():void
{
 if(timer==null){
 timer=new Timer(delay,repeatCount);
 }
 //uint是AS3新加的数据类型,表示32位的正整数(int表示32位有符号的整数)。Timer的构造函数接受两个参数,delay是“timer”事件延迟的毫秒数,repeatCount是循环的次数,默认为0,即一直循环下去直到stop或者reset。
 timer.addEventListener(TimerEvent.TIMER,IntervalTime);
 timer.addEventListener(TimerEvent.TIMER_COMPLETE,timerCompleteHandler);
 //timer广播两个事件,每隔delay指定的毫秒广播一次“timer”事件,循环repeatCount次之后广播“timerComplete”事件。
 timer.start();
}
//
//清除对象下的所有子对像
//每次删除1个子对象,后面的就填补上深度索引空缺,numChildren又会动态改变.
for(var i:int=con.numChildren-1; i>=0; i--) {
 con.removeChildAt(0);
}
//或
var len:uint = _img2.numChildren;
 while(len>0) {
  _img2.removeChildAt(0);
  len--;
 }
//
//数组
//返回某一范围的元素构成的新数组,而不修改原始数组
list=ary.slice(第一个,最后一下);
//数组取交集
function ArrayUnion(arr1:Array, arr2:Array) {
 var min:Array;
 var max:Array;
 var resultArr:Array = [];
 arr1.length<arr2.length ? (min=arr1, max=arr2) : (min=arr2, max=arr1);
 for (var j:Number = 0; j<min.length; j++) {
  for (var k in max) {
   if (min[j] == max[k]) {
    resultArr.push(min[j]);
    max.splice(Number(k),1);
    break;
   }
  }
 }
 return resultArr;
}

var a:Array = [3, 4, 5, 5, 6, 7];
var b:Array = [2, 3, 3, 7, 5, 9];
trace(ArrayUnion(a, b));


//自定义鼠标样式

var MouseStage:MovieClip;
var MouseIco:MovieClip;
function Start(st:MovieClip,mc:MovieClip) {
 Mouse.hide();
 MouseIco=mc;
 MouseStage=st;
 MouseStage.addEventListener(MouseEvent.MOUSE_MOVE,  cursorFollow );
 MouseStage.addEventListener( MouseEvent.MOUSE_DOWN,  cursorDown );
 MouseStage.addEventListener( MouseEvent.MOUSE_UP,  cursorUp );
}
function cursorHide(evt:Event):void {
 MouseIco.gotoAndStop(2);
}
function cursorDown(evt:MouseEvent):void {
 MouseIco.gotoAndStop(2);
}
function cursorUp(evt:MouseEvent):void {
 MouseIco.gotoAndStop(1);
}
function cursorFollow( evt:MouseEvent):void {
 if (MouseIco.currentFrame!=0) {
  MouseIco.gotoAndStop(1);
 }
 MouseIco.x=MouseStage.mouseX;
 MouseIco.y=MouseStage.mouseY;
 evt.updateAfterEvent();
 MouseIco.mouseEnabled=false;
}
function StartRemove() {
 MouseIco.x=-50;
 MouseIco.y=-50;
 MouseStage.removeEventListener(MouseEvent.MOUSE_MOVE,  cursorFollow );
 MouseStage.removeEventListener( MouseEvent.MOUSE_DOWN,  cursorDown );
 MouseStage.removeEventListener( MouseEvent.MOUSE_UP,  cursorUp );
 Mouse.show();
}


///
//生成指定大小范围内的随机数
function randRange(min:Number, max:Number):Number {
 var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
 return randomNum;
}
for(var i:int=0;i<1000;i++)
{
trace(randRange(5,20));
}
/
//加载图片或swf文件是所常用的事件
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
//在文件完成加载时调度。complete 事件总是在 init 事件之后调度
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
//在通过 HTTP 发出网络请求并且 Flash Player 可以检测到 HTTP 状态代码时
dispatcher.addEventListener(Event.INIT, initHandler);
//在可以访问所加载的 SWF 文件的属性和方法时(一斑用于加载swf文件,图片一斑用complete)
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
//在发生会导致加载操作失败的输入或输出错误时
dispatcher.addEventListener(Event.OPEN, openHandler);
//在加载操作开始时
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
//在加载操作进行过程中接收到数据时
dispatcher.addEventListener(securityError:SecurityErrorEvent, progressHandler);
//位于只能与本地文件系统内容交互的沙箱中的 SWF 文件尝试加载只能与远程内容交互的沙箱中的内容时(反之亦然)。
dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);
//在删除所加载的对象时
///
//循环播放背景音乐
function playNext(str:String):void {
  if(SoundMixer.areSoundsInaccessible() == false) {
                    SoundMixer.stopAll();
                    //muteButton.text = "click to play only one of sound.";
      trace("click to play only one of sound.");
                }
                else {
                   trace("The sounds are not accessible.");
                }
    murl=str;
                var snd:Sound = new Sound();
    
                snd.load(new URLRequest(murl));
                chanl = snd.play();
                chanl.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);

        }   

function soundCompleteHandler(e:Event):void {
            playNext(murl);
        }

function errorHandler(errorEvent:IOErrorEvent):void {
            trace(errorEvent.text);
        }
  
//
//元件随窗体大小进行缩放
import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
var swfStage:Stage = videoScreen.stage;

swfStage.scaleMode = StageScaleMode.NO_SCALE;
swfStage.align = StageAlign.TOP_LEFT;
function resizeDisplay(event:Event):void
{
var swfWidth:int = swfStage.stageWidth;
var swfHeight:int = swfStage.stageHeight;
// Resize the video window.
var newVideoHeight:Number = swfHeight - controlBar.height;
videoScreen.height = newVideoHeight;
videoScreen.scaleX = videoScreen.scaleY;
// Reposition the control bar.
controlBar.y = newVideoHeight;
}
swfStage.addEventListener(Event.RESIZE, resizeDisplay);
//http://hi.baidu.com/strive_boy/blog/item/71b4290fbf93abe9ab6457ec.html
//http://www2.flash8.net/teach/8180.htm


//flash加载外部asp|php|.net|jsp数据
var request:URLRequest=new URLRequest("list.asp?TypeId=3");
var loader:URLLoader=new URLLoader();
function loadData():void
{
 var urlVariables:URLVariables;
 urlLoader=new URLLoader();
 urlVariables=new URLVariables();
 var urlRequest:URLRequest= new URLRequest(url);
 urlVariables.typeid="1";//参数
 urlRequest.data=urlVariables;//将参数带入urlRequest.data
 urlRequest.method = URLRequestMethod.POST;//数据传送方式
 urlRequest.contentType="application/x-www-form-urlencoded";
 urlRequest.requestHeaders.push(new URLRequestHeader("Content-Type","text/html;charset=gbk"));
 urlLoader.dataFormat=URLLoaderDataFormat.VARIABLES;//数据传送类型
 //控制是以文本 (URLLoaderDataFormat.TEXT)、原始二进制数据 (URLLoaderDataFormat.BINARY) 还是 URL 编码变量 (URLLoaderDataFormat.VARIABLES) 接收下载的数据。
 //URLLoaderDataFormat.TEXT,则所接收的数据是一个包含已加载文件文本的字符串。
 //URLLoaderDataFormat.BINARY,则所接收的数据是一个包含原始二进制数据的 ByteArray 对象。
 //URLLoaderDataFormat.VARIABLES,则所接收的数据是一个包含 URL 编码变量的 URLVariables 对象。
 urlLoader.addEventListener(Event.COMPLETE,loadDataComplete);
 urlLoader.addEventListener(IOErrorEvent.IO_ERROR,function(Evt:IOErrorEvent){_msg.text="数据加载失败!";});
 urlLoader.load(urlRequest);
}//获取返回数据
function loadDataComplete(Evt:Event):void
{
 var loader:URLLoader=URLLoader(Evt.target);
 var urlVariables:URLVariables=URLVariables(loader.data);
 var urldata:String=urlVariables.url;
 var namedata:String=urlVariables.name;
 var picdata:String=urlVariables.pic;
 _msg.text=namedata;
 //init();
 //showPic(currentID);
 //timerHandler();
}
///
//点击切换当前状态
function init():void
{
 for(var i:int=0; i<mstr.length;i++)
 {
  this["_m"+i]._mt.gotoAndStop(i+1);
 }
 this["_m"+currentID].gotoAndStop(2);
}
function overHandler(Evt:MouseEvent):void
{
 var mc:MovieClip=MovieClip(Evt.currentTarget.parent);
 if(currentID!=int(mc.name.substr(2)))
 {
  this[mc.name].gotoAndStop(2);
 }
}
function outHandler(Evt:MouseEvent):void
{
 var mc:MovieClip=MovieClip(Evt.currentTarget.parent);
 if(currentID!=int(mc.name.substr(2)))
 {
  this[mc.name].gotoAndStop(1);
 }
}
function dowHandler(Evt:MouseEvent):void
{
 var mc:MovieClip=MovieClip(Evt.currentTarget.parent);
 currentID=int(mc.name.substr(2));
 updateMenu();
}
function updateMenu():void
{
 for(var i:int=0; i<mstr.length;i++)
 {
  this["_m"+i].gotoAndStop(1);
 }
 this["_m"+currentID].gotoAndStop(2);
}
init();

/
//解决乱码问题
function EncodeUtf8(str:String):String {
 var oriByteArr : ByteArray = new ByteArray();
 oriByteArr.writeUTFBytes(str);
 var tempByteArr : ByteArray = new ByteArray();
 for (var i:int = 0; i<oriByteArr.length; i++) {
  if (oriByteArr[i]==194) {
   tempByteArr.writeByte(oriByteArr[i+1]);
   i++;
  } else if (oriByteArr[i] == 195) {
   tempByteArr.writeByte(oriByteArr[i+1] + 64);
   i++;
  } else {
   tempByteArr.writeByte(oriByteArr[i]);
  }
 }
 tempByteArr.position=0;
 //readMultiByte(length:uint, charSet:String):String
 //length:uint — 要从字节流中读取的字节数。
 //charSet:String — 表示用于解释字节的字符集的字符串。 可能的字符集字符串包括 "shift-jis"、"cn-gb"、"iso-8859-1"”等。有关完整列表,。
 //请参阅支持的字符集:http://help.adobe.com/zh_CN/AS3LCR/Flash_10.0/charset-codes.html
 return tempByteArr.readMultiByte(tempByteArr.bytesAvailable,"chinese");
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ActionScript 3.0 是一种基于Adobe Flash 平台的编程语言,常用于游戏开发。它具有强大的功能和丰富的库,可实现各种游戏特效和交互方式。以下是关于使用ActionScript 3.0 开发游戏的一些重要信息。 首先,ActionScript 3.0 具有面向对象编程的特性,如封装、继承和多态,这使得游戏开发更加灵活和可扩展。你可以创建各种类型的游戏对象,并根据需要设定它们的属性和行为。 其次,ActionScript 3.0 提供了丰富的图形和动画处理功能。你可以使用内置的绘图库来创建游戏场景、角色和特效,也可以通过使用动画库来制作复杂的动画序列。此外,还可以利用位图和矢量图形进行图像处理和渲染。 除了图形和动画,ActionScript 3.0 还提供了音频和视频处理能力。你可以使用内置的音频库来播放背景音乐和音效,还可以通过外部库或平台来处理视频和流媒体。 另外,ActionScript 3.0 支持网络功能,如Socket 和HTTP 连接等。这意味着你可以开发在线多人游戏,与其他玩家进行实时对战或合作。 此外,Adobe Flash 还提供了一套全面的开发工具和环境,如Adobe Animate 和Flash Builder。这些工具提供了可视化的界面设计、调试和测试的功能,可以帮助开发者更高效地创建和调整游戏。 总而言之,ActionScript 3.0 是一种强大的游戏开发语言,具有丰富的功能和工具。使用它,开发者可以创建出各种类型的游戏,并实现复杂的图形、动画、音频和网络交互效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值