Comunidad de diseño web y desarrollo en internet online

Ayuda!. Problemas con puntero del mouse personalizado AS3

Citar            
MensajeEscrito el 14 Abr 2009 01:36 am
Hola a tod@s.
Mi nombre es leonardo y estoy en mi primer proyecto en as3.
Se trata de un sitio en formato fullscreen de fotos. La interface permite "draguear" las imagenes, horizontal o verticalmente, para pasar a la siguiente foto o categoria respectivamente. Todo funciona muy bien, pero a la hora de cambiar el puntero del mouse por la "manito" de arrastre (un pequeño gif de 100 bytes) me surgio el error y es aqui donde decido compartirlo con ustedes para ver si les ocurrio alguna vez o conocen una solucion.

Concretamente el problema que tengo es el consumo del CPU, el cual se eleva al 70% solo con mover el mouse (y es muchisimo, teniendo en cuenta que sin el cursor implementado, el sitio en los picos de maximo rendimiento llega a 30 con toda la furia).
Estos numeros los monitoreo con el administrador de tareas del google chrome.
Justamente el navegador que muestra mas esfuerzo es este mismo, mientras que en IE7, firefox y safari la cosa no es tan critica PERO funciona mal de todas formas.

Aqui dejo el codigo de la clase Cursor.

Código :

package {
   import flash.display.Sprite;
   import flash.display.Stage;
   import flash.events.MouseEvent;
   import flash.ui.Mouse;

   public class Cursor extends Sprite {

      private var stageRef:Stage;

      public function Cursor(stageRef) {
         Mouse.hide();
         this.stageRef = stageRef;
         stageRef.addEventListener(MouseEvent.MOUSE_MOVE, updateMouse, false, 0, true);
         stageRef.addChild(this);
      }

      private function updateMouse(e:MouseEvent):void {
         this.x = stageRef.mouseX;
         this.y = stageRef.mouseY;
      }
   }
}


En cuanto a la clase Main, instancio con lo siguiente:

private var cursor:Cursor;
cursor = new Cursor(stage);

Un dato importante es que el sitio esta en fullscreen, y cuando achico la ventana del navegador el CPU trabaja a menor nivel, no se si por ahi puede andar el problema.

En fin.. perdon por ser tan extenso, solo quiero ser lo mas claro posible y detallar la situacion.

Mil gracias a todos, si hace falta algun dato mas lo puedo incorporar

Saludos!

Por leonardo55

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Abr 2009 11:56 am
Tu clase es muy simple. Te diría que pruebes solo eso sin ningún otro code extra (solo reemplazar el puntero mientras se mueve) para aislar la interacción y chequear que realmente sea la fuente de la carga a la CPU ... y si realmente es así ... pues tendrás que pensar en no reemplazarlo ...

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Abr 2009 03:50 pm
Hola Jorge.
La clase la simplifique al máximo dejando lo mínimo y a partir de ahí comenzar a construir, pero ya en su mínima expresión me trae este problema.
El resto del main también lo elimine dejando solo la declaración del cursor, y aun sigue igual

Gracias por la respuesta

Saludos! y gracias por la pronta respuesta.

PD: Se les ocurre alguna otra solucion? es normal lo que esta pasando?

Por leonardo55

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Abr 2009 04:25 pm
En Flex podrías sobreescribir el estilo del cursor ... pero entiendo que es Flash

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Abr 2009 04:26 pm
Lo que hice ahora fue probar el swf sin el html que lo contiene, y funciona correcto.
El proble entonces sera el html?

voy a consultarlo en el foro de css y HTML.

Si alguno esta interesado o sabe del tema please que me contacte, quiero saber por que pierde tanto rendimiento una un flash en un html al 100% de alto y ancho.

Saludos!

Por leonardo55

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Abr 2009 04:38 pm
Solucionado...

Era algo tan tonto en el html : so.addParam("wmode", "transparent");

Gracias!!

Por leonardo55

6 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.