can anyone tell me why the following code works if i put it on the actionscript for the stage [followed by PreloadSequence(...) and startSpinning()] but the same code doesn't work if i put it i a class and create an instance. thanks in advance. var pi = Math.PI; var interval; var t:Number; var spinning:Boolean = false; var _xMax:Number = 40; var _yMax:Number = 15; var _xOrigin = 0; var _yOrigin = 0; var _color = 0x999999; var _interval:Number = 40; // pra dar 25 fps var _speed:Number = 30; // qnt menor mais rapido var _trails = 10; // quantos rastos aparecem function PreloadSequence(xOrigin:Number, yOrigin:Number, xMax:Number, yMax:Number, color, trails:Number) { // trace(xOrigin + "," + yOrigin + "," + xMax + "," + yMax + "," + color + "," + trails); if(xOrigin != undefined) _xOrigin = xOrigin; if(yOrigin != undefined) _yOrigin = yOrigin; if(xMax != undefined) _xMax = xMax; if(yMax != undefined) _yMax = yMax; if(color != undefined) _color = color; if(trails != undefined) _trails = trails; // faltam aqui coisas :P } function createInstance(name:String, depth:Number) { _root.createEmptyMovieClip(name, depth); with(eval("_root." + name)) { lineStyle(3, _color, 100); moveTo( 0, -20); lineTo( 0, 0); moveTo(-5, -5); lineTo( 0, 0); moveTo( 5, -5); lineTo( 0, 0); } } function setPosition() { createInstance("drop" + t, t); var x = Math.round(_xMax * Math.sin((t * pi) / _speed)); // que var y = Math.round(_yMax * Math.sin((t * pi) / (_speed / 2))); // equacoes var r = Math.round( 135 * Math.cos((t * pi) / _speed) - 180); // lindas! setProperty("drop" + t, _x, x + _xOrigin); setProperty("drop" + t, _y, y + _yOrigin); setProperty("drop" + t, _rotation, r); var i:Number, a:Number; for (i = t - 1; i > t - _trails; i--) { if (i < 0) break; a = getProperty("drop" + i, _alpha); setProperty("drop" + i, _alpha, a - 100 / _trails); } removeMovieClip("drop" + (t - _trails)); t++; } function startSpinning() { if(spinning) return; spinning = true; t = 0; interval = setInterval(setPosition, _interval); } function stopSpinning() { if(!spinning) return; spinning = false; clearInterval(interval); }
Don't see what you're looking for? Try a search.
|