Comunidad de diseño web y desarrollo en internet online

Problema Print2Flash

Citar            
MensajeEscrito el 14 Jun 2011 01:30 pm
Hola a todos, estoy usando AS3, Flash CS4 y Print2Flash con Remote SharedObjects.
La cuestión es que quiero que cuando el usuario A cambie la parte visible del documento en su navegador, el usuario B vea en el suyo exactamente lo mismo que el A.
Para ello he usado lo siguiente:

Código ActionScript :

private function onVisibleAreaChanged(e:Object):void
{
   ro.sendAreaVisible(P2FDoc.getVisibleArea());
}

Y lo capturo en la siguiente función:

Código ActionScript :

private function visibleArea(e:Event):void
{
   if(P2FDoc.getVisibleArea().equals(e.target.docObj) == false)
   {
      P2FDoc.setVisibleArea(e.target.docObj);
   }
}

El problema es que cuando cambio el area, me dice que "equals" no es una función, y por lo visto en la API de Print2Flash debe hacerse así.
También remarcar que a la función "visibleArea" sólo accede el usuario B.
Alguien sabe donde está mi error?

Muchas gracias por adelantado.

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Jun 2011 01:41 pm
Vaya, yo hice exactamente lo mismo hace un par de años, aunque ya no me acuerdo de nada.
Igual considera que el API de Print2Flash está en AS2, lo que tiene es un wrapper para AS3 que internamente usa LocalConnection para comunicarse, con lo cual no siempre hay que atenerse a la línea chica.
Mira que te devuelve P2FDoc.getVisibleArea() (posiblemente un objeto de coordenadas, o un RECT), y mira que pasa si usas == en vez de equals, sino deberás hacer tu comparación personalizada desarmando el objeto que obtengas

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 Jun 2011 01:50 pm
Hola Jorge, gracias por la brevedad, la verdad es que ya he provado a hacer un "trace(e.target.docObj)" y me devuelve "[object Object]".
Si lo pongo con ==, que también lo había provado, funciona, pero después cuando toco el Zoom, al cambiar también la zona visible, se vuelve loco, y empieza a hacer zoomIn-zommOut continuamente.
Que me recominedas?

Muchas gracias de nuevo

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Jun 2011 01:59 pm
Tienes que tener un "delay" en el sync de las acciones. Si el que maneja el documento se pone a toquetear para ponerlo en donde quiere y corrige nerviosamente, spameas el servidor con todo tipo de updates, lo cual es bastante costoso e inútil. Tienes que hacer el sync cada N tiempo, sino corres el riesgo de saturar de mensajes y de volver loco al reproductor

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 Jun 2011 02:02 pm
Muchas gracias Jorge, ahora busco como hacerle un "delay" al sync. Espero que no sea muy difícil.

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Jun 2011 02:07 pm
Tip: no todos los comandos necesitan esto, específicamente zoom y mover (arrastrando) el documento son los problemáticos, especialmente si tienes un slider para manejar el zoom. Lo que haces es pasar un flag a false, lanzar un Timer que lo vuelva a true en N tiempo, esto solo desde los comandos mencionados anteriormente.
Si tienes QA detrás tuyo, se divierten tratando de romperte la interfaz, entonces deberás extender eso a todo, porque es bastante fácil si te pones a mover el documento como loco

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 Jun 2011 02:23 pm
Muchas gracias jorge, ahora mismo lo pruebo

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jun 2011 07:40 am
Siguiendo con el tema, necesito que el usuario A tenga control de zoom, scroll, rotación ... y que el usuario B sólo pueda imprimir el documento.
Hay alguna forma de ocultar dichos iconos automáticamente desde FLASH? Antes usaba FlashPaper2 y AS2 y era con la siguiente instrucción:

Código ActionScript :

fp.showUIElement("PrevNext", false);
fp.showUIElement("Find", false);
fp.showUIElement("Tool", false); 
fp.showUIElement("Pop", false);
fp.showUIElement("Zoom", false);
fp.showUIElement("Page", false);
fp.showUIElement("Overflow", false);

Hay algo parecido en Print2Flash y AS3?
He visto en la documentación que se puede escoger que iconos son visibles cuando hacemos la conversión, pero como el mismo documento tendrá que tener 2 toolbars distintas según si eres el usuario A o el B, no quiero tener que duplicar todos los documentos.

Muchas gracias

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jun 2011 09:38 am
Hola de nuevo, ya lo solucioné.
Pueden ver en este link la página de la API donde explica como hacerlo.
Les dejo un ejemplo:

Código ActionScript :

P2FDoc.setControlVisibility(8);

Muestra el "soom slider"

Código ActionScript :

P2FDoc.setControlVisibility(24);

Muestra "zoom slider" y "zoom box".

Espero que les sirva.

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jun 2011 10:38 am
De hecho yo los generaba sin botonera en la conversión, y tenía aparte una botonera que armaba on demand. Esto era útil también porque el mismo documento se mostraba en una página HTML, entonces la botonera que se usaba estaba en el mismo HTML y se comunicaba via JavaScript

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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