Estoy usando away3d y necesito modificar una clase de su librería pero mis conocimientos sobre OOP son escasos y aunque hace algo parecido a lo que quiero, no logro que funcione bien. A ver si logro explicarme:
Estoy partiendo de este tutorial:
http://away3d.com/tutorials/Globe_Materials_Tutorial , concretamente el primer ejemplo (
Listing 1)
Resumiendo, hay una clase principal (
GlobeMaterialsTutorialListing01.as):
https://github.com/away3d/away3d-tutorials-fp11/blob/master/tutorials/materials/globe/src/GlobeMaterialsTutorialListing01.asque extiende a
GlobeMaterialsTutorialListingBase.as:
https://github.com/away3d/away3d-tutorials-fp11/blob/master/tutorials/materials/globe/src/GlobeMaterialsTutorialListingBase.asY en esta clase es donde se instancia otra clase (
HoverController.as):
https://github.com/away3d/away3d-core-fp11/blob/master/src/away3d/controllers/HoverController.asque extiende a su vez a
LookAtController.as:
https://github.com/away3d/away3d-core-fp11/blob/master/src/away3d/controllers/LookAtController.asPues bien, la pequeña modificacion que hice es esta: (en
LookAtController.as)
Código ActionScript :
public override function update(interpolate:Boolean = true):void{
interpolate = interpolate; // prevents unused warning
if (_targetObject) {
if (_lookAtPosition) {
_targetObject.lookAt(_lookAtPosition, _upAxis);
_targetObject.pitch(pivotar);
} else if (_lookAtObject) {
....
Osea, añadir la linea
_targetObject.pitch(pivotar) que lo que hace es girar la cámara sobre el eje x.
Además de crear una nueva funcion:
Código ActionScript :
public function inclinarCamara(){
var tweenIn:GTween = new GTween(this, 0.8);
tweenIn.ease = Exponential.easeOut;
tweenIn.setValue("pivotar", -25);
notifyUpdate();
}
Para que un tween se encargue de ese giro.
Y una llamada a esta funcion desde el Main (
GlobeMaterialsTutorialListing01.as):
Código ActionScript :
_cameraController.inclinarCamara();
Así como está funciona pero sólo cuando la esfera se está moviendo. Eso es lo que estoy intentando arreglar y no hay manera
Sospecho que el quid de la cuestion esta en la funcion update() pero no sé por donde cojerla.
Les dejo el source de lo que tengo y el swf por si quieren ver el funcionamiento erratico del tween. No puedo poner el link del swf en el almacenamiento gratuito que tengo porque no se porque ya no se visualizan los swf, por lo menos los que usan stage3d.
http://www.filz.us/files/b9b73307/d48/GlobeMaterialsTutorialListing01.zipGracias por su atencion y espero que alguien pueda ayudarme.