Ho modificato il codice in modo da disegnare un ellisse di riferimento.codice:var angle:Number; var progress:Number = 0.0; var velocity:Number = 0.02; var pallino:Pallino; var centerX:int = 200; var centerY:int = 200; var radiusX:Number = 150; var radiusY:Number = 100; var s:Shape = new Shape(); s.graphics.lineStyle(1, 0x000000); s.graphics.drawEllipse(centerX - radiusX, centerY - radiusY, radiusX*2, radiusY*2); addChild(s); function quartoCirconferenza(e:Event){ if (progress > 1) { progress -= int(progress); } else if (progress < 0) { progress -= int(progress) - 1; } pallino = new Pallino(); addChild(pallino); angle = (1-progress) * (-Math.PI * 2) / 4; //circonferenza completa pallino.x = centerX + radiusX * Math.cos(angle); pallino.y = centerY + radiusY * Math.sin(angle); progress += velocity; }
Ho aggiunto poi il "/ 4" che mi hai suggerito, e il fattore "distanza che diminuisce" persiste.
Ecco il risultato:
http://dl.dropbox.com/u/4064417/ellisseFlash2.jpg
e il risultato senza "/ 4" ... sembra che l'ellisse descritto dai pallini sia un po' discostato![]()
http://dl.dropbox.com/u/4064417/ellisseFlash3.jpg
In più facendo qualche calcolo sulla formula dell'ellisse viene fuori che y = b * sqrt(1 - (x/a)^2) con come condizione x >= sqrt(1)/a
però non saprei come farmela tornare utile![]()