flash on 2015-9-16
♥0 |
Line 63 |
Modified 2015-09-16 06:33:35 |
MIT License
archived:2017-03-30 11:43:12
ActionScript3 source code
/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/0Cgy
*/
package {
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
vecHeight = new Vector.<Number>(32, 0);
var i:int; var num:int;
num = vecHeight.length;
for (i = 0; i < num; i+=1)
{ vecHeight[i] = Math.random() * 256 + 128; }
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var vecHeight:Vector.<Number>;
public var cw:Number = 16;
public function getHeight(ax:Number):Number
{
var tx:int;
tx = Math.floor(ax / cw);
if (tx < 0) { return vecHeight[0]; }
if (tx >= vecHeight.length) { return vecHeight[vecHeight.length-1]; }
var h0:Number; var h1:Number; var u:Number;
h0 = vecHeight[tx];
if (tx == vecHeight.length - 1) { return h0; }
h1 = vecHeight[tx+1];
u = (ax/cw) - tx;
return h0 + (h1-h0) * u;
}//geth
public function onEnter(e:Event):void
{
var mx:Number; var my:Number;
graphics.clear();
graphics.lineStyle(2, 0);
mx = stage.mouseX; my = stage.mouseY;
h = getHeight(mx);
graphics.drawCircle(mx, h, 4);
var h:Number;
var i:int; var num:int;
num = vecHeight.length;
for (i = 0; i < num; i+=1)
{
h= vecHeight[i];
if (i == 0) { graphics.moveTo(i*cw, h); }
graphics.lineTo(i*cw, h);
}//nexti
var ax:Number; var ay:Number;
var bx:Number; var by:Number;
var kx:Number; var ky:Number;
ax = 32; ay = 32;
bx = 300; by = 300;
ax = mx; ay = my;
graphics.moveTo(ax,ay);
graphics.lineTo(bx,by);
var t:Number;
for (t = 0; t < 1; t+=0.01)
{
kx = ax + (bx-ax) * t;
ky = ay + (by-ay) * t;
if (getHeight(kx) < ky) { break; }
}//nextt
graphics.drawCircle(kx,ky, 4);
}//onenter
}//classend
}