MIS A JOURComment passer une variable à une fonction appelée par ENTER_FRAME sans commande
J'ai un grand code de cluttery que je veux accélérer par instanciation CubeEaseOut
classe une fois. Je le fais à travers le ff:
var myClass = new CubeEaseOut()
myClip.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
myClip2.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
myClip3.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
function onMouseOver(e:Event){
//made changes here
myClass.initializer(e.currentTarget, ["scaleX",1.5,"height",200]);
}
Alors chaque fois que je déplace la souris sur l'un de ces clips, une fonction nommée initializer()
dans la classe CubeEaseOut
est appelée.
À l'intérieur de la classe CubeEaseOut
, j'ai un code qui déjeune sur ENTER_FRAME
une fois puis appelle périodiquement une fonction animateThis()
.
package;
import goes here...
class CubeEaseOut extends Sprite {
var here...
public function new(){
super();
addEventListener(Event.ENTER_FRAME, animateThis);
}
public function initializer(mc:Dynamic, vars:Array<Dynamic>()){
vars[1] //this is a Float with value 1.5
mc[vars[0]] //is mc.scaleX
//some other code
//notice many variables received here are needed by other functions
//but if I make this public, or placed outside functions, every call
//on this function will overwrite previous values
//other variables here
var sp:Float = (vars[1] - mc[vars[0]])/50
}
private function animateThis(e:Event){
//some other code
//many variables from initialize() function is needed here
iter++
mc[vars[1]] += sp*iter
}
}
La chose est, pour animateThis()
à travailler, il a besoin de vars initializer()
. Comment puis-je passer des variables de initializer()
à animateThis()
sans le prochain appel à initializer()
en remplaçant les variables précédentes?
: attemps
- j'ai essayé d'utiliser vars mondiale, mais ce mess choses.
- Placez ENTER_FRAME à l'intérieur de la fonction initializer() mais il s'avère que ENTER_FRAME sera appelé my times - CPU intensive.
- Créé plusieurs instance de la classe - CPU intensive ainsi.
- Essayé en utilisant this.aVar, aVar est remplacé par l'appel suivant.
Informations additionnelles:
Le code complet que je fais est similaire à celui-ci
Animation code not fired when mouse is out Clip1 but mouse is inside clip 2
mais je suis maintenant en œuvre classe et ENTER_FRAME.
oui, j'accomplirai le portage de mon code en utilisant vos suggestions. Je serai de retour une fois que les résultats seront connus. –
Les utilisateurs de @GurtejSingh qui posent une question sont informés des réponses qu'ils reçoivent.Nous n'avons pas besoin de spammer le site avec "regarde ma réponse!" commentaires. – null
@null Désolé, rien à envier! Je faisais juste en sorte que les utilisateurs voient la réponse que j'ai postée. Sera prudent d'avancer. Excuses. –