学导网 >> it000 >> Flash
Flash AS代码实现小球沿路径移动
www.xuedao.net  2007-7-31 15:41:00 互联网

    本例中我们用Flash的ActionScript代码控制制作小球沿不规则的路径上移动的卡通动画。

    主要使用BitmapData.getPixel();函数。

    原理:路径为一像素的纯色的不规则的曲线(如红色),用getPixel();函数记录曲线上的所有坐标。

    ActionScript代码如下:

    import flash.display.BitmapData; 
    import flash.geom.Point; 
    var pointArr:Array = []; 
    var ypos:Number = 200; 
    var curve:MovieClip = this.createEmptyMovieClip("curve", 10); 
    with (curve) { 
    lineStyle(1, 0xFF0000); 
    moveTo(0, ypos); 
    for (var i:Number = 0; i<550; i += 6) { 
    lineTo(i, ypos+i/10*Math.sin(i/20)); 
    } 
     }
    var X:Number = curve._width;
    var Y:Number = ypos+curve._height;
    var copyBitmap:BitmapData = new BitmapData(X, Y, true, 0);
    copyBitmap.draw(curve);
    var color:Number = Number(0xFF0000);
    for (var i:Number = 0; i<X; i += 10) {
    for (var j:Number = 0; j<Y; j++) {
    if (copyBitmap.getPixel(i, j) == color) {
    pointArr.push(new Point(i, j));
    break;
    }
     }
      }
    copyBitmap.dispose();
    var ball:MovieClip = this.createEmptyMovieClip("ball", 20);
    with(ball){
    lineStyle(20);
    moveTo(0, 0);
    lineTo(.2, 0);
    }
    this.onEnterFrame = function() {
    ball._x = pointArr[0].x;
    ball._y = pointArr[0].y-10;
    pointArr.shift();
    if (pointArr.length == 0) {
    delete this.onEnterFrame;
    trace("over");
    }
     };

评论】 【关闭
相关新闻
Google提供广告