In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Voiture Polution

Play with Arrows Keys
//Play with Arrows Keys
package 
{
 import flash.display.Bitmap;
 import flash.display.BitmapData;
 import flash.display.Sprite;
 import flash.display.StageAlign;
 import flash.display.StageScaleMode;
 import flash.events.Event;
 import flash.events.KeyboardEvent;
 import flash.events.MouseEvent;
 import flash.events.TimerEvent;
 import flash.filters.BlurFilter;
 import flash.filters.GlowFilter;
 import flash.geom.ColorTransform;
 import flash.geom.Matrix;
 import flash.geom.Point;
 import flash.ui.Keyboard;
 import flash.utils.Timer;
 public class Jeux extends Sprite
 {
  private var voiture:Voiture = new Voiture;
  private var directions:Object = { haut:false, bas:false, gauche:false, droite:false };
  private var dataDessin:BitmapData;
  private var dessin:Dessin;
  private var oldDatas:Object = null;
  
  public function Jeux():void 
  {
   var sp:Sprite=new Sprite();
   stage.addChild(sp);
   sp.x=stage.stageWidth/2;
   sp.y=stage.stageHeight/2;
   sp.addChild(this);
   this.x=-stage.stageWidth/2;
   this.y=-stage.stageHeight/2;
   stage.frameRate=60;
   dessin = new Dessin;
   addEventListener(CustomEvent.CHANGEPOSITION, dessiner);
   stage.scaleMode = StageScaleMode.NO_SCALE;
   stage.align = StageAlign.TOP_LEFT;
   stage.addEventListener(KeyboardEvent.KEY_DOWN, appuyer);
   stage.addEventListener(KeyboardEvent.KEY_UP, relacher);
   stage.addEventListener(Event.RESIZE, resize);
   var bitmap:Bitmap = new Bitmap(dataDessin);
   //bitmap.smoothing = true;
   addChild(voiture);
   resize();
  }
  private function appuyer(e:KeyboardEvent):void
  {
   if(e.keyCode===Keyboard.UP)
    directions.haut = true;
   else if(e.keyCode===Keyboard.DOWN)
    directions.bas = true;
   else if(e.keyCode===Keyboard.LEFT)
    directions.gauche = true;
   else if(e.keyCode===Keyboard.RIGHT)
    directions.droite = true;
   majVoiture();
  }
  private function relacher(e:KeyboardEvent):void
  {
   if(e.keyCode===Keyboard.UP)
    directions.haut = false;
   else if(e.keyCode===Keyboard.DOWN)
    directions.bas = false;
   else if(e.keyCode===Keyboard.LEFT)
    directions.gauche = false;
   else if(e.keyCode===Keyboard.RIGHT)
    directions.droite = false;
   majVoiture();
  }
  private function majVoiture():void
  {
   if (directions.bas)
    voiture.acceleration = -.2;
   else if (directions.haut)
    voiture.acceleration = 1;
   else
    voiture.acceleration = 0;
   
   
   if (directions.droite == directions.gauche)
    voiture.direction = 0;
   else if (directions.droite)
    voiture.direction = 1;
   else if (directions.gauche)
    voiture.direction = -1;
   else
    voiture.acceleration = 0;
    
  }
  private function dessiner(e:CustomEvent):void
  {
   //dessin.colorTransform(dessin.rect, new ColorTransform(1, 1, 1,.999));
   if (e.datas.traverse)
    oldDatas = null;
   if (oldDatas != null)
    dessin.line(e.datas.x, e.datas.y, oldDatas.x,oldDatas.y);
   oldDatas = e.datas;
  }
  private function resize(e:Event=null):void
  {
   var copyData:BitmapData;
   if (dataDessin != null)
    copyData = dataDessin.clone();
   dataDessin = new BitmapData(stage.stageWidth, stage.stageHeight);
   if (copyData != null)
   {
    var w:int = Math.ceil(dataDessin.width / copyData.width);
    var h:int = Math.ceil(dataDessin.height / copyData.height);
    for (var _w:Number = 0; _w < w; _w++ )
     for (var _h:Number = 0; _h < h; _h++ )
     {
      var matrix:Matrix = new Matrix();
      matrix.translate(_w * copyData.width, _h * copyData.height);
      dataDessin.draw(copyData,matrix);
     }
   }
   dessin.bitmapData = dataDessin;
   addChildAt(dessin, 0);
  }
 }
}
import flash.events.Event;
class CustomEvent extends Event
{
 public static const CHANGEPOSITION:String = "changePosition";
 private var _datas:Object;
 public function get datas():Object
 {
  return _datas;
 }
 public function CustomEvent(type:String, datas:Object=null)
 {
  super(type, true);
  _datas = datas;
 }
 public override function clone():Event 
 {
  return new CustomEvent(type, _datas);
 }
}

import flash.display.LineScaleMode;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.filters.GlowFilter;
import flash.utils.Timer;
class Voiture extends Sprite
{
 private var vitesse:Number=0;
 private var _acceleration:Number=0;
 private var timer:Timer = new Timer(1);
 private var _direction:Number = 0;
 private var accAngle:Number = 0;
 private var angle:Number = -Math.PI / 2;
 private var _x:Number;
 private var _y:Number;
 private var lumiere:GlowFilter = new GlowFilter(0xff0000, 1, 10, 10, 5, 3);
 public function Voiture() 
 {
  filters = [lumiere];
  addEventListener(Event.ADDED_TO_STAGE, poser);
  timer.addEventListener(TimerEvent.TIMER, majPos);
  addEventListener(Event.ENTER_FRAME, maj);
  graphics.beginFill(0);
  graphics.moveTo( 0, -10);
  graphics.lineTo( 10, 0);
  graphics.lineTo(0, 10);
  graphics.endFill();
  width = 10;
  height = 10;
      addEventListener(Event.ADDED_TO_STAGE, centrer);
  function centrer(e:Event):void
  {
   removeEventListener(Event.ADDED_TO_STAGE, centrer);
   _x = stage.stageWidth / 2;
   _y = stage.stageHeight / 2;
  }
 }
 public function get acceleration():Number
 {
  return _acceleration;
 }
 public function set acceleration(val:Number):void
 {
  _acceleration = val;
 }
 
 public function get direction():Number
 {
  return _direction;
 }
 public function set direction(val:Number):void
 {
  _direction = val;
 }
 private function maj(e:Event):void
 {
  x = _x;
  y = _y;
  lumiere.alpha = vitesse/3;
  filters = [lumiere];
  rotation = (angle*180/Math.PI)%360;
 }
 private function majPos(e:TimerEvent):void
 {
  
  vitesse += acceleration/3;
  vitesse *= .97;

   accAngle += direction /  2000;
  if (direction == 0)
   accAngle *= .9;
  else
   accAngle *= .99;
  angle += accAngle*vitesse;
  var vitX:Number = Math.cos(angle);
  var vitY:Number = Math.sin(angle);
  
  _x += vitesse * vitX;
  _y += vitesse * vitY;
  var traverse:Boolean = false;
  if (_x < 0) 
  {
   traverse = true;
   _x = stage.stageWidth;
  }
  if (_x > stage.stageWidth)
  {
   traverse = true;
   _x = 0;
  }
  if (_y < 0)
  {
   traverse = true;
   _y = stage.stageHeight;
  }
  if (_y > stage.stageHeight)
  {
   traverse = true;
   _y = 0;
  }
  dispatchEvent(new CustomEvent(CustomEvent.CHANGEPOSITION, { x:_x, y:_y ,traverse:traverse} ));
  
 }
 private function poser(e:Event):void
 {
  timer.start();
 }
}

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BitmapDataChannel;
import flash.display.CapsStyle;
import flash.display.JointStyle;
import flash.display.LineScaleMode;
import flash.display.Shape;
import flash.events.TimerEvent;
import flash.filters.BlurFilter;
import flash.geom.ColorTransform;
import flash.geom.Point;
import flash.utils.Timer;
class Dessin extends Bitmap
{
 private var timer:Timer = new Timer(40);
 private var blur:BlurFilter = new BlurFilter(1.5, 1.5,3);
 private var myColorTransform:ColorTransform = new ColorTransform(.99999, .99999, .99999, 1, 2, 2, 2,0);
 private var pointNull:Point = new Point();
 private var dessin:Shape = new Shape();
 public function Dessin()
 {
 
  timer.addEventListener(TimerEvent.TIMER, filtrer);
  timer.start();
  dessin.filters = [blur];
  smoothing = true;
 }
 private function filtrer(e:TimerEvent):void
 {
                bitmapData.applyFilter(bitmapData, bitmapData.rect, pointNull, blur);
  bitmapData.colorTransform(bitmapData.rect, myColorTransform);
 }
 public function line(x1:int, y1:int, x2:int, y2:int):void
 {
  dessin.graphics.clear();
  dessin.graphics.lineStyle(3, 0,1,false,LineScaleMode.NONE,CapsStyle.ROUND,JointStyle.BEVEL,0);
  dessin.graphics.moveTo(x1, y1);
  dessin.graphics.lineTo(x2, y2);
  bitmapData.draw(dessin);
 }
}