Comunidad de diseño web y desarrollo en internet online

[Sheer] -> Flash Remoting

Citar            
MensajeEscrito el 27 Ene 2006 02:56 am

[Sheer] escribió:

Hola.

Estoy haciendo un foro y, en el desarrollo de éste, he descubierto ciertas cosas "extrañas". Por ejemplo, he tenido que crear dos frames ("capa 1" y "capa 2") con el mismo código, ya que al hacer un gotoAndPlay("capa 1") desde el primero (para actualizarse), se me quedaba en blanco; en cambio, si voy "compaginando" los dos frames obtengo el resultado esperado (es decir, para actualizar un frame creo otro idéntico y al darle a actualizar llama al otro y así sucesivamente).

¿Es normal?, ¿Os ha ocurrido? Shock

Saludos!


No, mas bien creo que tu problema es que no utilizas listeners de eventos, entonces quieres ejecutar algo cuando esta undefinido o cosas por el estilo. Por ejemplo:

Código :

misDatos = new LoadVars();
misDatos.onLoad=function(){
   trace(misDatos.dato);//Arroja un resúltado válido
}
trace(misDatos.dato);//Arroja undefined
misDatos.load("datos.php");


Se que lo tuyo es Remoting, no LoadVars, solo te lo pongo de ejemplo, ahora para remoting, puedes checar esto:

Tutorial



pd. Borre tu post original, por que se duplico en el foro. :wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 27 Ene 2006 01:22 pm
He utilizado la clase que muestras en el tuto en alguna ocasión y me va muy bien, pero a la hora de querer implementarle setCredentials no sabía como hacerlo y me decanté por la vía clásica.

Este es el código que duplico, por si sirve de algo:

Código :

import mx.remoting.Service; 
import mx.rpc.RelayResponder; 
import mx.rpc.FaultEvent; 
import mx.rpc.ResultEvent; 
import mx.remoting.PendingCall; 

var posx: Number = 204.7;
var posy: Number = 50;
var prof = 0;
var row: Object; 
var id = new Array() ;

if (paginas>cont_paginas)
{
   attachMovie("siguienteF","siguiente",this.getNextHighestDepth);
   siguiente._x = 470;
   siguiente._y = 25;   
   sigPag = true;
}
else
   sigPag = false;
   
for(var c:Number=2;c>=1;c--)
{    
   for(var f:Number=MaxF; f>=MinF; f--)
   { 
      row = rst.getItemAt(f);
      posy += 30;
      prof++;
      id[f] = row.id;
      if (c==2)
      {
         attachMovie("tituloF",nombre_campos[c]+"_"+row.id,prof);
         if(!pagCargada)
            cuenta_mensajes++;
      }
      else
         attachMovie("usuarioF",nombre_campos[c]+"_"+row.id,prof);
      this[nombre_campos[c]+"_"+row.id]._y = posy;
      this[nombre_campos[c]+"_"+row.id]._x = posx;
      this[nombre_campos[c]+"_"+row.id].escribir.text = row[nombre_campos[c]];
      
      this[nombre_campos[c]+"_"+row.id].onRelease = function()
      {   
         if (sigPag)
            siguiente.removeMovieClip();
         pagCargada = true;
         var pcMostrarPost:PendingCall = sForo.mostrarPost(this._name); 
         pcMostrarPost.responder = new RelayResponder(_root, "mostrarPostResult","mostrarPostFault");
         limpiar();
         gotoAndPlay("mostrar post");
      }
   }
   posy = 50;
   posx +=267;
};

limpiar = function()
{
   for(a:Number=MinF;a<=MaxF;a++)
   {
      _level0["user_"+id[a]].removeMovieClip();
      _level0["titulo_"+id[a]].removeMovieClip();
   }
}

siguiente.onRelease = function()
{
   limpiar();
   if (cuenta_mensajes+5<filas)
   {
      MaxF+=5;
      MinF+=5;
   }
   else
   {
      MaxF+=filas-cuenta_mensajes
      MinF+=5;
   }

   cont_paginas++;
   pagCargada = false;
   this.removeMovieClip();
   gotoAndPlay("mostrar foro capa 2");//<----"mostrar foro capa 1" en el otro
}

function mostrarPostResult(rs:ResultEvent) 
{
   idSel = rs.result[0];
   tfUserMsg.text = rs.result[1];
   tfTit.text = rs.result[2];
   tfTexto.text = rs.result[3];   
}

function mostrarPostFault(fl:FaultEvent) 
{
   trace("Hubo un problema: "+fl.fault.faultstring); 
   trace("El código del error es: "+fl.fault.faultcode); 
   trace("Detalles: "+fl.fault.detail); 
}

stop();



Saludos! ^^

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 27 Ene 2006 05:07 pm
Acabo de ver otra cosa extraña; resulta que cuando hago un gotoAndPlay("frame actual"), en vez de volver a ejecutarse a si mismo, se va al siguiente, ¿Es normal? :?

Saludos! ^^

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 28 Ene 2006 05:18 am
Mira, supongamos que tengo esto:

Chica1 : "Angelina Jolie"

Chica2 : "Barbara Mori"

Y te digo, ve con Angelina Jolie y avanza, tu que haces "llegas y avanzas"

Lo mismo pasa con el gotoAndPlay, ve y avanza.

Si quieres que se quede, utiliza gotoAndStop.

Saludos

:wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 28 Ene 2006 05:22 pm
He probado con el gotoAndStop y bien, por lo visto no se va al siguiente, pero tampoco ejecuta el presente.

Con este simple código:

Código :

trace("Hola");
btnEntrar.onRelease = function() {
   gotoAndStop("actual");
};


No consigo que al darle al botón haga de nuevo el trace, ¿por qué? :?

Saludos! ^^

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 28 Ene 2006 05:25 pm
Por que así no se hace. Estas queriendo hacer que una función haga algo para lo que no fué hecha. Es eso, básicamente tienes que hacer esto:

Frame:

Código :

function tuFuncion(){
  trace("Hola");
}
btnEntrar.onRelease = function() {
   tuFuncion(); //Llamala cuantas veces quieras
}; 

:wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 28 Ene 2006 08:39 pm
Bien, la idea de lo que he hecho es esta:

Código :

tuFuncion();
function tuFuncion(){ 
  trace("Hola"); 
} 
btnEntrar.onRelease = function() { 
   tuFuncion(); //Llamala cuantas veces quieras 
};


Así se reproduce "onEnterFrame", por decirlo de algún modo. Aunque realmente no acabo de entender cual es la diferencia de meterlo dentro de una función o colocarlo directamente en el frame... :crap:

Saludos y gracias! ^^

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera

 

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