Foros del Web » Creando para Internet » Flash y Actionscript »

Problema con current frame == totalFrames

Estas en el tema de Problema con current frame == totalFrames en el foro de Flash y Actionscript en Foros del Web. Hola a todos, quiero borrar una película cuando alcanza un frame determinado( preferiblemente si se identifica con un label como "borrar"). Por ahora como no ...
  #1 (permalink)  
Antiguo 03/03/2010, 09:30
 
Fecha de Ingreso: febrero-2010
Mensajes: 7
Antigüedad: 14 años, 9 meses
Puntos: 0
Problema con current frame == totalFrames

Hola a todos, quiero borrar una película cuando alcanza un frame determinado( preferiblemente si se identifica con un label como "borrar"). Por ahora como no sé como utilizar correctamente los labels pues la borro cuando alcance el final y listo, el problema es que tampoco se me borra.

Código:
//stageRef es la variable del stage que pasé a esta clase.

public var stageRef:Stage;

//El constuctor de la clase es

public function myMovieClip (stageRef:Stage)

{
   this.stageRef = stageRef
   if(this.currentFrame == totalFrames)
   { 
        borrarMC();
   }
}

public function borrarMC()
{
   if(stageRef.contains(this))
   {
      stageRef.removeChild(this);
   }
}
El problema es que cuando alcanza el último frame tan sólo vuelve al primero. Pero en realidad lo que estoy buscando es algo más como:

Código:
//pseudo código

if(this.currentFrame("delete"))
{
   removeSelf();
}
Yo sé que no es un método válido, pero justamente es por ahí donde me gustaría encontrar una solución, basado más en el label de un frame que en su número.

Gracias por cualquier guía y ayuda en este tema.
  #2 (permalink)  
Antiguo 03/03/2010, 09:54
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 17 años
Puntos: 51
Respuesta: Problema con current frame == totalFrames

necesitas una función como esta

Código PHP:
function delMcFrame(event:Event):void{
    if(
event.currentTarget.currentFrame == event.currentTarget.frameEnd){
        
event.currentTarget.parent.removeChild(event.currentTarget)
    }

por ejemplo si la película principal tiene 50 fotogramas al llegar ha ese frame esta se elimina

Código PHP:
this.frameEnd=this.totalFrames
this
.addEventListener(Event.ENTER_FRAME,delMcFrame)

function 
delMcFrame(event:Event):void{
    if(
event.currentTarget.currentFrame == event.currentTarget.frameEnd){
        
event.currentTarget.parent.removeChild(event.currentTarget)
    }

tienes que declara la variable frameEnd siempre ya que se basa en esta para saver si se elimina o no

si lo quieres hacerlo por mc individuales seria asi
Código PHP:
miMovieClip.frameEnd=miMovieClip.totalFrames
miMovieClip
.addEventListener(Event.ENTER_FRAME,delMcFrame)

miotroMovieClip.frameEnd=30
miotroMovieClip
.addEventListener(Event.ENTER_FRAME,delMcFrame
y si quieres especificar el fotograma especifico

Código PHP:
miMovieClip.frameEnd=20
miMovieClip
.addEventListener(Event.ENTER_FRAME,delMcFrame
suerte
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #3 (permalink)  
Antiguo 03/03/2010, 15:14
 
Fecha de Ingreso: febrero-2010
Mensajes: 7
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con current frame == totalFrames

Lynxcraft funciona perfecto , muchas gracias amigo. Sólo una cosa, en este caso identifico el frame por el número pero estoy trabajando en unas animaciones con varios pasos y yo sé que de fijo le voy a estar alterando la cantidad de frames y como ya lo imaginaste pues todo se descuadra.

¿Cómo podría hacer para trackear el nombre del label en la condicional en lugar del número de frame?.

Muchas gracias de nuevo por la ayuda que me brindaste.
  #4 (permalink)  
Antiguo 04/03/2010, 05:01
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 17 años
Puntos: 51
Respuesta: Problema con current frame == totalFrames

entonces seria con currentFrameLabel


Código PHP:
function delMcFrameLabel(event:Event):void{
    if(
event.currentTarget.currentFrameLabel == event.currentTarget.frameLabelEnd){
        
event.currentTarget.parent.removeChild(event.currentTarget)
    }


ejemplo
Código PHP:

this
.frameLabelEnd='Miframe'
this.addEventListener(Event.ENTER_FRAME,delMcFrameLabel)

function 
delMcFrameLabel(event:Event):void{
    if(
event.currentTarget.currentFrameLabel == event.currentTarget.frameLabelEnd){
        
event.currentTarget.parent.removeChild(event.currentTarget)
    }

__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft

Etiquetas: frame
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:51.