package { import flash.events.Event; import flash.display.*; import Tunnel; public class TunnelDemo extends Sprite { [Embed(source='SomeImage.jpg')] public var MyPhoto:Class; private var tunnel:Tunnel; private var count:Number = 0.0; public function TunnelDemo():void { import Tunnel; var bmp:BitmapData = (new MyPhoto()).bitmapData; tunnel = new Tunnel(bmp, 600.0, 300.0); tunnel.x = stage.stageWidth/2; tunnel.y = stage.stageHeight/2; addChild(tunnel); addEventListener(Event.ENTER_FRAME, update); } private function update(e:Event):void { count += 0.03; var sin:Number = Math.sin(count); // these values seems small // since they're relative to 1/bitmap.width // move forward tunnel.step(0.01,0.01*sin); // bend the tunnel tunnel.xBending = 0.02*(sin-Math.cos(2.5*count)); tunnel.yBending = 0.01*(Math.sin(2.5*count)+sin); tunnel.update(); } } }