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.)
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 ){}".
this.aV = Math.floor(value-this._alpha);
this.aV ? this._alpha += this.aV/speed : (this._alpha=value, delete this.onEnterFrame);
- this.aV = Math.floor(value-this._alpha);
- 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
_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.
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
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.
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
if (this.aV) {
this._alpha += this.aV/speed;
} else {
this._alpha = value;
delete this.onEnterFrame;
}
- if (this.aV) {
- this._alpha += this.aV/speed;
- } else {
- this._alpha = value;
- delete this.onEnterFrame;
- }
Puedo ayudar a este aclara mejor para usted joebert
