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

evitar un enterFrame

Estas en el tema de evitar un enterFrame en el foro de Flash y Actionscript en Foros del Web. Hola!! Estoy haciendo las secciones correspondientes a cada uno de los botones (que son clips) y cuando pulso uno de ellos me lleva a un ...
  #1 (permalink)  
Antiguo 18/04/2007, 09:41
Avatar de PedroRodas  
Fecha de Ingreso: noviembre-2005
Ubicación: Cádiz
Mensajes: 393
Antigüedad: 18 años, 4 meses
Puntos: 0
evitar un enterFrame

Hola!!

Estoy haciendo las secciones correspondientes a cada uno de los botones (que son clips) y cuando pulso uno de ellos me lleva a un frame concreto de mi linea de tiempo. Para la seccion 1 tengo un clip que comienza en con alpha=0 y _xscale=0. Debe ir agrandandose y visualizandose poco a poco. Este es mi codigo:
onClipEvent(load)
{
this._alpha = 0;
this._xscale = 0;
}
onClipEvent(enterFrame)
{
this._alpha += (100-this._alpha)/10;
this._xscale += (100-this._xscale)/10;
}

Alguien tiene una sugerencia de como hacerlo de una forma mejor?

Muchas Gracias
  #2 (permalink)  
Antiguo 18/04/2007, 09:46
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 17 años, 6 meses
Puntos: 30
Re: evitar un enterFrame

que es lo que quieres mejorar?
  #3 (permalink)  
Antiguo 18/04/2007, 09:58
Avatar de PedroRodas  
Fecha de Ingreso: noviembre-2005
Ubicación: Cádiz
Mensajes: 393
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: evitar un enterFrame

Pues siempre me han dihco que el enterFrame ralentiza mucho los archivos, con lo cual intento encontrar una forma alternativa de hacer el efecto.

Deduzco de tu pregunta que debo dejarlo tal y como esta no?

Muchas gracias por contestar. Sois de mucha ayuda a los que comenzamos
  #4 (permalink)  
Antiguo 18/04/2007, 10:04
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 17 años, 6 meses
Puntos: 30
Re: evitar un enterFrame

dibuja un cuadro y conviertelo en movieClip ahora dentro de ese cuadro en un fotoframa vacio pon esto
Código:
import mx.transitions.Tween;
var myTween:Tween = new Tween(this, "_xscale", mx.transitions.easing.Elastic.easeOut, 0, 300, 3, true);
var myTween:Tween = new Tween(this, "_yscale", mx.transitions.easing.Elastic.easeOut, 0, 300, 3, true);
esa clase ayuda hacer los efectos que quieras esta documentada en la ayuda de flash. si tienes dudas vienes y preguntas

ahora tu codigo tienes razon el onEnterFrame hace lenta la animacion sino lo acabas debes ponerle una condicion y borrarlo con delele.
  #5 (permalink)  
Antiguo 18/04/2007, 10:18
Avatar de PedroRodas  
Fecha de Ingreso: noviembre-2005
Ubicación: Cádiz
Mensajes: 393
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: evitar un enterFrame

muy bien tio, muchas gracias.

a ver, para la primera solucion q me has dado, ese codigo incluye la transicion de 0 a 100? es q se le pasa el estado inicial y final o algo asi?

y respecto a cerrar el enterFrame, como lo hago?

Gracias de nuevo
  #6 (permalink)  
Antiguo 18/04/2007, 10:35
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 17 años, 6 meses
Puntos: 30
Re: evitar un enterFrame

debes de leer la documentacion como digo a muchas personas ahi hay mucha informacion que dan en cursos muy caros esa ayuda es la mejor que he visto asi dice la ayuda de flash con la clase tween

Código:
Utilización de la clase Tween
Para utilizar los métodos y las propiedades de la clase Tween, debe utilizar el operador new para crear una nueva instancia de la clase. Por ejemplo, para aplicar en el escenario una instancia de una interpolación a un objeto de clip de película denominada myMovieClip_mc, debe usar el código siguiente para crear una nueva instancia de mx.transitions.Tween:

import mx.transitions.Tween;
var myTween:Tween = new Tween(myMovieClip_mc, "_x", mx.transitions.easing.Elastic.easeOut, 0, 300, 3, true);
Parámetros de la clase Tween
Para crear una nueva instancia de una clase Tween es necesario pasar varios parámetros. Debe indicar el objeto de clip de película de destino, la propiedad del clip de película a la que va a afectar la interpolación, el rango en el que se va a interpolar el objeto y un método de suavizado que se va a utilizar para calcular el valor de la propiedad de interpolación.

El constructor de la clase mx.transitions.Tween tiene el siguiente nombre y tipos de parámetro:

Tween( obj:Object, prop:String, func:Function, begin:Number, finish:Number, duration:Number, useSeconds:Boolean )
obj Objeto de clip de película al que se va a aplicar la instancia de Tween.

prop Nombre de cadena de una propiedad de obj en la que se van a interpolar los valores.

func El método de suavizado que calcula un efecto de suavizado para los valores de propiedades del objeto interpolado. Véase Métodos y clases de suavizado.

begin Número que indica el valor inicial de prop (propiedad del objeto de destino que se va a interpolar).

finish Número que indica el valor de fin de prop (propiedad del objeto de destino que se va a interpolar).

duration Número que indica la duración del movimiento de interpolación. Si se omite, se establece una duración infinita de manera predeterminada.

useSeconds Valor booleano que indica que se utilizarán segundos si el valor especificado en el parámetro duration es true o fotogramas si el valor es false.
para borra un onEnterFrame haz lo que te dije un cuadrado lo conviertes en pelicula y dentro de el pones esto en un frame vacio
Código:
this.onEnterFrame = function() {
	this._alpha += (200-this._alpha)/10;
	this._xscale += (300-this._xscale)/10;
	trace(this._xscale);
	if (Math.round(this._xscale) == 300) {
		trace("se acabo");
		delete this.onEnterFrame;
	}
};
checa el if , ahora lo que tu tenias estaba incorrecto ya que tu valor es 100%
y como tu mc por defectotiene 100% no hara ningun cambio.
  #7 (permalink)  
Antiguo 18/04/2007, 11:06
Avatar de PedroRodas  
Fecha de Ingreso: noviembre-2005
Ubicación: Cádiz
Mensajes: 393
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: evitar un enterFrame

muchisimas gracias!!! Eres un crack!!
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 03:19.