莱鸟献丑请多多指教
/
//获取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");
}