当前位置:异度空间站-> 文章教程 -> flash教程-> flash action 实例:实现小球沿不规则的路径上移动内容

flash action 实例:实现小球沿不规则的路径上移动

减小字体 增大字体 作者:流浪儿  来源:闪吧  发布时间:2007-8-29 22:36:26

声明:本站刊载此文仅为提供更多信息,不代表同意其说法或描述,也不构成任何建议,如需转载请注明作者及来源。

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

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");
 }
};

flash action 实例:实现小球沿不规则的路径上移动文章的评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

验证码: 验证码,看不清楚?请点击刷新验证码

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。)

更多文章

相关文章