flash小技巧备忘

前言:flash小技巧备忘

======================================================================================

卸载拖入舞台的MC
我们知道只有动态创建的mc才可以使用removeMovieClip()方法来卸载,帮助中对removeMovieClip方法的说明如下:
Quote 
删除用 duplicateMovieClip()、MovieClip.duplicateMovieClip() 或
MovieClip.attachMovie() 创建的影片剪辑实例。
下面的技巧可以让我们随心所欲的卸载你需要的MC,即使是你拖入舞台的组件等。

1 : My_mc.swapDepths(100);//把mc的深度值设定为大于0的值
2 : My_mc.removeMovieClip();//这样就可以正常卸载mc了
是不是很有用哦。
PS:使用my_mc.unloadMovie() 以可以删除mc实例,但是却保留了实例属性和剪辑处理函数。用removeMovieClip() 可以删除实例(包括其属性和剪辑处理函数)。


TextFormat.URL
很多人都知道使用textField.htmlText来写超文本的方式,可是似乎很少人知道其实我们还可以使用TextFormat.URL来定义。

1 : myFormat = new TextFormat();
2 : myFormat.url = http://www.google.cn;
3 : my_txt.html = true; //这是必须的 
4 : my_txt.htmlText = "kaikai";
5 : my_txt.setTextFormat(myFormat); 


鼠标光标
多数情况下,需要用到鼠标光标在主场景中的位置,所以可以使用_root._xmouse和_root._ymouse表示。
    onClipEvent (enterFrame) {
      _x = _root._xmouse;
      _y = _root._ymouse;
      }//让影片剪辑和鼠标保持相同坐标


将矩形影片剪辑作为遮罩图形
  在矩形影片剪辑的动作面板中添加如下ActionScript:
        onClipEvent (load) {
        xs = _width;
        ys = _height;
        }
        onClipEvent (enterFrame) {
        _xscale = 100*(_root._xmouse-_x)/(xs/2);
        _yscale = 100*(_root._ymouse-_y)/(ys/2);
        }
      在load事件中,用变量xs和ys取得影片剪辑初始状态下的宽度和高度值。在enterFrame事件中,计算鼠标位置与矩形影片剪辑中心     的距离,算出它与矩形宽度和高度值的比值,然后作为_xscale和_yscale的值。该动画实现移动鼠标位置以改变遮罩效果


鼠标双击问题! 
lsn_DbClick = new Object(); 
lsn_key = new Object(); 
lsn_DbClick.onMouseDown = function() { 
clickTime = getTimer(); 
if (clickTime-lastClickTime<=300) { 
trace("双击了鼠标"); 

lastClickTime = clickTime; 
}; 
Mouse.addListener(lsn_DbClick); 
time = getTimer()-down_time; 
if (time<300) { 
//双击后的代码部分 

down_time = getTimer(); 
怎样在从另一个swf中获取变量 
          
loadMovieNum("vars.swf", 1["POST"]); 
_root.onEnterFrame = function() { 
trace(_level1.myvab); 
}; 
//当加载完毕后,输出就有值了... 
        

鼠标右键及滚轮的代码


            if Key.isDown(2){},(左键的代码是1) 
        
        左键:Key.isToggled(1) 
        右键:Key.isToggled(2) 
        滚轮:Key.isToggled(4) 
        滚轮1:Key.isToggled(4) PC机上用 
        滚轮2:Key.isToggled(3) MAC机上用 
        未知:Key.isToggled(3) 
  this.onEnterFrame = function() { 
  if (Key.isDown(2)){ 
  trace("asdfjsdjkf"); 
  } 
  } 


显示帧速
function get_fps() {
    var a = this.createEmptyMovieClip("fps_show", 100000);
    a.createTextField("fps_text", 0, 0, 0, 16, 18);
    a.fps_text.background = true;
    a._fps = 0;
    a.oldtim = getTimer();
    a.onEnterFrame = function () {
        this._fps = Math.round(1000 / (getTimer() - this.oldtim));
        this.oldtim = getTimer();
        this.fps_text.text = this._fps;
    };
}
get_fps();

显示时间
function get_time() {
var a = this.createEmptyMovieClip("time_show", 200412);
a.createTextField("time_text", 0, 0, 0, 140, 18);
    a.time_text.background=true;
a.onEnterFrame = function () {
this.time_text.text = new Date().getFullYear()+"年"+new Date().getMonth()+"月"+new Date().getDay()+"日"+new Date().getHours()+":"+new Date().getMinutes()+":"+new Date().getSeconds();
};
}
get_time();

将十进制数N转换成d进制:N=(N div d)*d + N mod d
function jh_conversion(N, d) {
    var s = [], e="";
    while (N>0) {
        s.push(N%d);
        N = Math.floor(N/d);
    }
    while (s.length>0) {
        e += s.pop();
    }
    trace(e);
    return e;
}

AS填充,并获得填充区点阵
function get_fill(mc){
    var s_j=mc._x;
    var e_j=mc._x+mc._width;
    var s_i=mc._y;
    var e_i=mc._y+mc._height;
    //
    var a=mc.createEmptyMovieClip("fill",1);
    var fill_data=[];
    for(var i=0;i<100;i++){
        fill_data[i]=[];
        for(var j=0;j<25;j++){
            if(mc.hitTest(i,j,true)){
                a.lineStyle(1,random(0xffffff));
                a.moveTo(i,j);
                a.lineTo(i+.5,j);
                fill_data[i][j]=1;
            }else{
                fill_data[i][j]=0;
            }
        }
    }
    for(var i in fill_data){
        fill_data[i]=fill_data[i].join("");
    }
    fill_data=fill_data.join(",");
    trace(fill_data);
    return fill_data;
}

简单代码实现MC与鼠标成反向移动
onEnterFrame = function(){
    a._x+=(270-_xmouse)*.01;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值