2017-11-28 17 views
0

Ich weiß, das ist alte Technologie, aber ich möchte nur ein Update auf eine Flash Xmas-Karte, die ich aussende. Im Grunde benutze ich ein Partikel-Skript (siehe unten), das meiner Maus folgt und einige Goldpartikel ausspuckt. Ich möchte dem etwas entgegensetzen, so dass es hinter einem getweenten Objekt folgt, das über den Bildschirm läuft. Ich dachte, es könnte ein Fall sein, den Event-Listener zu etwas zu ändern, aber ich kann es nicht herausfinden.Actionscript 2 Partikel

EDIT - Mein Ziel ist ein Movieclip namens Schlitten

Jede Hilfe sehr geschätzt.

Script (AS2)

//import bitmap class 
import flash.display.BitmapData; 

//Settings 
var particleMaxSpeed:Number = 3; 
var particleFadeSpeed:Number = 5; 
var particleTotal:Number = 5; 
var particleRange:Number = 25; 

/** 
* createExplosion(target X position, target Y position) 
*/ 
function createExplosion(targetX:Number, targetY:Number):Void 
{ 
    //run for loop based on particleTotal 
    for (var i:Number = 0; i<particleTotal; i++) { 
     //attach bitmap from the library with the linked name "adobe_flash" 
     var myBmp:BitmapData = BitmapData.loadBitmap("fire.jpg"); 

     //create the "main_holder" movieclip that will hold our bitmap 
     var particle_mc = _root.createEmptyMovieClip("main_holder", _root.getNextHighestDepth()); 

     //create an "internal_holder" movieclip inside "main_holder" that we'll use to center the bitmap data 
     var internal_holder:MovieClip = particle_mc.createEmptyMovieClip("internal_holder", particle_mc.getNextHighestDepth()); 

     //set "internal_holder" x and y position based on bitmap size 
     internal_holder._x = -myBmp.width/2; 
     internal_holder._y = -myBmp.height/2; 

     //finally, attach the bitmapData "myBmp" to the movieclip "internal_holder" 
     internal_holder.attachBitmap(myBmp, internal_holder.getNextHighestDepth(), "never", true); 

     //set position & rotation, alpha 
     particle_mc._x = targetX 
     particle_mc._y = targetY 
     particle_mc._rotation = random(360); 
     particle_mc._alpha = random(50)+50; 

     //set particle boundry    
     particle_mc.boundyLeft = targetX - particleRange; 
     particle_mc.boundyTop = targetY - particleRange; 
     particle_mc.boundyRight = targetX + particleRange; 
     particle_mc.boundyBottom = targetY + particleRange; 

     //set speed/direction of fragment 
     particle_mc.speedX = Math.random(particleMaxSpeed)-Math.random(particleMaxSpeed); 
     particle_mc.speedY = Math.random(particleMaxSpeed)-Math.random(particleMaxSpeed); 
     particle_mc.speedX *= particleMaxSpeed 
     particle_mc.speedY *= particleMaxSpeed 

     //set fade out speed 
     particle_mc.fadeSpeed = Math.random(particleFadeSpeed)*particleFadeSpeed; 

     //just a visual particle counter 
     numberOfParticles++; 

     //make fragment move using onEnterFrame 
     particle_mc.onEnterFrame = function():Void 
     { 
      //update alpha, x, y 
      this._alpha -= this.fadeSpeed; 
      this._x += this.speedX; 
      this._y += this.speedY; 
      //if fragment is invisible or out of bounds, remove it 
      if (this._alpha <= 0 || this._x < this.boundyLeft || this._x > this.boundyRight || this._y < this.boundyTop || this._y > this.boundyBottom) 
      { 
       this.removeMovieClip(); 
       // 
       numberOfParticles--; 
      } 
     } 
    } 
} 

/** 
* Mouse Controls 
*/ 
//create an object that we'll listen to 
mouseListener = new Object(); 

//on Click, createExplosion 
mouseListener.onMouseDown = function() { 
    //createExplosion(_xmouse, _ymouse); 
} 
mouseListener.onMouseMove = function() { 
    createExplosion(_xmouse, _ymouse); 
} 

//add listener 
Mouse.addListener(mouseListener); 

Antwort

0

Sie müssen die createExplosion Funktion für jeden Rahmen rufen und die sleigh x passieren und y-Koordinaten anstelle der Maus-Koordinaten. Ersetzen

mouseListener.onMouseMove = function() { 
    createExplosion(_xmouse, _ymouse); 
} 

mit

sleigh.onEnterFrame = function() { 
    createExplosion(sleigh._x, sleigh._y); 
} 

und entfernen Sie die anderen Maus-Listener Sachen