2012年12月26日 星期三

Starling 粒子特效 ParticleDemo


 
package demo7_Particle 
{
 import starling.core.Starling;
 import starling.display.Sprite;
 import starling.events.Event;
 import starling.events.Touch;
 import starling.events.TouchEvent;
 import starling.events.TouchPhase;
 import starling.extensions.ParticleDesignerPS;
 import starling.textures.Texture;
 
 /**
  * ...
  * @author Ray Cheng
  */
 public class ParticlePage extends Sprite 
 {
 [Embed(source = "../../bin/particle/particle.pex", mimeType = "application/octet-stream")]
 private static const ParticleXML:Class;
 [Embed(source = "../../bin/particle/texture.png")]
 private static const ParticleBmp:Class;
  
 private var _container:Sprite;
 private var _particle:ParticleDesignerPS;
  
 public function ParticlePage() 
 {
   this.addEventListener(Event.ADDED_TO_STAGE, init);
 }
  
 private function init(e:Event):void 
 {
   removeEventListener(Event.ADDED_TO_STAGE, init);
   creat();
 }
  
 private function creat():void 
 {
   _container = new Sprite();
   _particle = new ParticleDesignerPS(XML(new ParticleXML()), Texture.fromBitmap(new ParticleBmp()));
   _particle.emitterX = 200;
   _particle.emitterY = 200;
   
   _container.addChild(_particle);
   addChild(_container);
   Starling.juggler.add(_particle);
   _particle.start();
   
 //--增加觸點互動
   stage.addEventListener(TouchEvent.TOUCH, onTouch);
 }
  
 private function onTouch(event:TouchEvent):void
 {
    var touch:Touch = event.getTouch(stage);
    if (touch && touch.phase != TouchPhase.HOVER)
    {
       _particle.emitterX = touch.globalX;
       _particle.emitterY = touch.globalY;
     }
  }
 }

}


沒有留言:

張貼留言

我的留言版