flash小球沿不规则的路径移动

资讯 驱动中国 2,367次阅读
分享 Q
AI摘要
由 AI 生成 · 仅供参考

  用了BitmapData.getPixel();来做的.原理:路径为一像素的纯色的不规则的曲线(如红色),用getPixel();记录曲线上的所有坐标. import flash.display.BitmapData;   import flash.geom.Point;   var pointArr:Array = [];   var ypos:Number = 200; &

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

版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录
我要投稿有独家观点或行业线索?向驱动中国投稿,审核采用后署名发布并获积分奖励。 去投稿 ›

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友