¿Cómo reducir aplha valor de la imagen en movimiento utilizando el código

  • asifbhura
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: May 15, 2004
  • Mensajes: 5
  • Status: Offline

Nota Junio 20th, 2004, 1:22 am

Hola a todos

Estoy tratando de reducir el valor de alfa de clip de película. pero no funciona algunos me trataron código que figura a continuación

Código: [ Select ]
onClipEvent(load)
{
    alphavalue=100;
    for(i=0;i<=100;i++)
    {
      _root.almc._alpha = alphavalue;
   }
     alphavalue--;
    
}
  1. onClipEvent(load)
  2. {
  3.     alphavalue=100;
  4.     for(i=0;i<=100;i++)
  5.     {
  6.       _root.almc._alpha = alphavalue;
  7.    }
  8.      alphavalue--;
  9.     
  10. }

Por favor, ayúdame
esperando respuesta.

Thanx in advance
saludos cordiales,
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Junio 20th, 2004, 1:22 am

  • Sulfin
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jun 12, 2004
  • Mensajes: 129
  • Loc: canada
  • Status: Offline

Nota Junio 20th, 2004, 9:42 am

alphavalue la variable se fija en 100 antes de la _alpha es la alphavalue.
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Junio 20th, 2004, 5:00 pm

El código que me está haciendo bizco :wink:

Prueba este, (línea de tiempo principal)
Código: [ Select ]
fadeFactor = 15;
fadeTo = 0;
almc.onEnterFrame = function(){
   if(this._alpha > fadeTo){
     this._alpha -= fadeFactor;
   }else{
     delete this.onEnterFrame;
   }
}
  1. fadeFactor = 15;
  2. fadeTo = 0;
  3. almc.onEnterFrame = function(){
  4.    if(this._alpha > fadeTo){
  5.      this._alpha -= fadeFactor;
  6.    }else{
  7.      delete this.onEnterFrame;
  8.    }
  9. }


fadeTo es el nivel de alfa a desaparecer a & fadeFactor es la cantidad a restar de cada iteración del bucle :D
Strong with this one, the sudo is.
  • lostinbeta
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Jun 26, 2003
  • Mensajes: 1402
  • Loc: Philadelphia, PA
  • Status: Offline

Nota Junio 20th, 2004, 8:44 pm

Dado que soy un monstruo de la función, y tienden a hacer mucho con transiciones Alpha en ActionScript, escribí este prototipo un poco antes para ayudarme con la decoloración clips. Espero que pueda ser útil también.
Código: [ Select ]
MovieClip.prototype.fadeTo = function(value, speed) {
    this.onEnterFrame = function() {
        this.aV = Math.floor(value-this._alpha);
        this.aV ? this._alpha += this.aV/speed : (this._alpha=value, delete this.onEnterFrame);
    };
};
//example useage
clipInstanceName.fadeTo(40, 10);
  1. MovieClip.prototype.fadeTo = function(value, speed) {
  2.     this.onEnterFrame = function() {
  3.         this.aV = Math.floor(value-this._alpha);
  4.         this.aV ? this._alpha += this.aV/speed : (this._alpha=value, delete this.onEnterFrame);
  5.     };
  6. };
  7. //example useage
  8. clipInstanceName.fadeTo(40, 10);


clipInstanceName es obviamente el nombre de instancia del símbolo de clip de película que nos dirigimos a desaparecer. El 40 es el valor _alpha final que desee, y el 10 es la velocidad en que desea que para llegar allí. Dado que este prototipo se utiliza la ecuación de aceleración de forma que es una transición suave de la alfa mayor sea la velocidad, más lenta la transición irá.


Ah, y btw, el código original no funciona porque un bucle se ejecuta de una sola vez en el fondo y envía el resultado final. En Flash "circular" que se ejecuta constante es el controlador onEnterFrame.
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Junio 20th, 2004, 10:07 pm

lostinbeta escribió:
su código original no funcionó debido a un bucle for está a cargo de una sola vez en el fondo y los resultados del resultado final.


Eso var alphavalue y nunca fue tocado hasta que salió del bucle (que acabo de notar que) :P

lostinbeta, toda posibilidad de una breve runthrough prototipos en su lógica? El código en el primer puesto se me crosseyed con un incremento i contra una decreciente _alpha, la tuya me ha arañar un agujero en mi cabeza todos juntos :scratchhead:

oh yeah, Bam! :lol:
Strong with this one, the sudo is.
  • lostinbeta
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Jun 26, 2003
  • Mensajes: 1402
  • Loc: Philadelphia, PA
  • Status: Offline

Nota Junio 21st, 2004, 2:22 pm

Código: [ Select ]
MovieClip.prototype.fadeTo = function(value, speed) { };
Un prototipo es como una función normal, sin embargo tiene una diferencia muy significannot.... es orientado a objetos. En este caso el objeto es un símbolo de MovieClip. Eso significa que el uso correcto de esta función, se debe adjuntar a una instancia de un símbolo de clip de película, por lo tanto, ¿por qué llama a la función como "clipInstanceName.functionName ();". Dado que los prototipos son de alcance mundial que no están orientadas a ellos como lo hace las funciones normales (_root.functionName (), etc.)

Código: [ Select ]
this.onEnterFrame = function() {};
El controlador onEnterFrame es un objeto específico de controlador de eventos dinámicos. Es la forma dinámica de "onClipEvent (enterFrame ){}".

Código: [ Select ]
   this.aV = Math.floor(value-this._alpha);
   this.aV ? this._alpha += this.aV/speed : (this._alpha=value, delete this.onEnterFrame);
  1.    this.aV = Math.floor(value-this._alpha);
  2.    this.aV ? this._alpha += this.aV/speed : (this._alpha=value, delete this.onEnterFrame);
Ahora bien, esta es la materia más complicada. Escribí dos tutoriales en la relajación en Flash, ambos utilizamos la misma fórmula, pero que muestran el método básico, que las ideas en la ecuación se puede aplicar a algo más que _x e _y posiciones (tal como vemos en este alfa FADE). Aquí están los tutoriales...

Tutorial 1
Tutorial 2

Como he dicho, las tutorías se aplican de retroceder a una posición de clips, pero las ideas de la ecuación no se limitan a, así que en este caso me llevó a cambiar el valor alfa de un clip.

Hay algunas diferencias en la forma en Sligh pocos lo escribí. La ecuación de aceleración básica se configura como
Código: [ Select ]
_property += (endValue-_property)/speed;
Sin embargo, en el caso de la decoloración alfa, que quería eliminar el controlador onEnterFrame (sólo posible en un controlador de evento dinámico, no un controlador onClipEvent) después de la atenuación se ha completado. Con la ecuación de aceleración estándar, los números que produce requiere una solución barata para lograr este objetivo. Por lo que separaba a los "(EndValue-_property)" parte de la ecuación y decidió mantenerlo en su variable propia.

La variable en este caso es "esto. AV "(que para mí es sinónimo de valor alfa), el" presente "de localización en frente de la variable asegura que la variable se crea dentro del objeto que llama la función. Esta es la alegría de ámbitos variable. Si usted no tiene" este "Hay la variable será el mismo valor para cualquier clip de ejecutar esta función. El uso de" este ", asegura usted puede usar esto en más de un clip a la vez porque cada clip será la lectura del valor de la variable contenida en sí misma.

Yo escogí Matemáticas. floor () la "(EndValue-_property)" parte por lo que wouldnt tienen que tratar con 8 números decimales lugar. Un número redondo es lo que im buscando, pero yo quiero que para redondear lo que puede llegó a 0 mejor.

Código: [ Select ]
this.aV ? this._alpha += this.aV/speed : (this._alpha=value, delete this.onEnterFrame);
Este derecho de la línea aquí es probablemente el más confuso para usted. Pero espero que aclararlo.

La parte principal que es probablemente lo que es confuso acerca de esta línea es la mierda de "?" y ":". Un atajo muy útil en muchos lenguajes de programación es lo que se llama el operador terciario ( http://www.kirupa.com/developer/actions ... rtiary.htm ). Es una forma abreviada de un if / else
Código: [ Select ]
statement ? do A : do B;
Que básicamente dice que si la declaración es verdadera, no una, otra cosa B.

Así que ahora que espero que tengamos una mejor comprensión del operador terciario, le permite volver al código.

Código: [ Select ]
this.aV ? this._alpha += this.aV/speed : (this._alpha=value, delete this.onEnterFrame);


Lo que esto dice que si la variable de esto. aV existe / tiene un valor distinto de 0, el alfa debe ajustarse a través de la ecuación de aceleración de base. Else if this.aV no existe o es igual a 0, el valor alfa de este clip se establecerá en el valor que usted quería, y el controlador de eventos onEnterFrame dinámica se eliminará por lo que este bloque de código de ejecución se detendrá.

En regular si / else forma que sería algo como esto
Código: [ Select ]
if (this.aV) {
 this._alpha += this.aV/speed;
} else {
 this._alpha = value;
 delete this.onEnterFrame;
}
  1. if (this.aV) {
  2.  this._alpha += this.aV/speed;
  3. } else {
  4.  this._alpha = value;
  5.  delete this.onEnterFrame;
  6. }


Puedo ayudar a este aclara mejor para usted joebert :)
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Junio 21st, 2004, 5:09 pm

** Comienza a tomar tapas de toma de corriente eléctrica, control de focos, "Dónde está la cámara?!?"
lostinbeta escribió:
Este derecho de la línea aquí es probablemente el más confuso para usted. Pero espero que aclararlo.

Sí y sí :D Gracias una vez más lostinbeta :)

Tan,
Código: [ Select ]
ifIGetThisRight ? (thisWillRun(true), thenThis(true)) : (thisWillRun(false), thenThis(false))
Strong with this one, the sudo is.
  • lostinbeta
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Jun 26, 2003
  • Mensajes: 1402
  • Loc: Philadelphia, PA
  • Status: Offline

Nota Junio 21st, 2004, 7:18 pm

Yeppers.

Si es sólo una declaración que no están obligados a tener la pare nothesis, pero tal y como hizo cuando hay más de 2 estados pare la nothesis se requieren y las declaraciones deben estar separadas por una ",". Así que le clavaron en la cabeza.

El tercer operador, evidentemente, no es óptimo para un caso / otra declaración que contendrá muchas declaraciones, pero su una buena forma sencilla de comprimir su código cuando no se tiene mucho pasa en el caso de / los demás.

Flash re-convierte a la norma si y otro formato de exportación durante el fin técnicamente no hay ninguna optimización pasa, sólo haciendo las cosas más difíciles y más fácil de leer / escribir ;)

Publicar Información

  • Total de mensajes en este tema: 8 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 29 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC