Categoría 'Flash'


ActionScript 3.0: públicos, protegidos, privados e internos

Con AS3 han introducido nuevas "instrucciones" para definir las propiedades y métodos (públicos o privados). si comportava in AS2 come ora si comporta protected , in AS3 private è davvero “privata” !) proprio a causa dell'introduzione di una sintassi più OO rispetto alle precedenti versioni. Algunos, como los private - ya están presentes en AS2 - un cambio de comportamiento ( private se comportó de AS2 se comporta como ahora protected en AS3 private es en realidad "privado"!) solo por la introducción de una sintaxis de OO que las versiones anteriores . Mejor esquema, pues, de lo "público" en la mayoría de los "privados":

  • público
    todo el mundo puede acceder a él
  • protegido
    se puede acceder a la clase padre y subclases
  • Privado
    sólo la clase que define
  • Interno
    sólo dentro del mismo paquete

Continuación ...

Fragmento muy breve: cutString ()

Cómodo y rápido! Con los valores de Number de ActionScript, por ejemplo, es una ayuda esencial para la "letra" en la pantalla.

1
2
3
4
5
6
7
/ *
** @ Nombre: cutString ()
** @ Descripción: cortar una cadena de caracteres n
* /
cutString ( s : String , v : uint = 4 ) : String { cutString protected function (s: cuerdas , v: uint = 4): cadena {
s . length > v ) ? s . substr ( 0 , v ) : s ) ; return ((longitud s.> v) s. substr (0, v): s);
}

A menudo, yo lo uso también en sub() y _s()

Continuación ...

Flash CS3: Crear un efecto de reflejo en cualquier MovieClip

Tomando ventaja de una característica notable de ActionScript 3.0 (ver ActionScript 3.0, todos con el nuevo operador ) he creado un ReflexMe clase capaz de generar un efecto "reflejo" en cualquier MovieClip presentes en la biblioteca.

Cargando flash ...

La fuente es parte del paquete de undolibrary - googlecode de esto - pero si lo desea, puede descargar el archivo solo ReflexMe.as .

Continuación ...

Efectos sobre el mapa de bits con perlinNoise ()

La clase BitmapData le permite aplicar fácilmente efectos útiles para diversos fines. Ya hemos visto cómo crear una "televisión de niebla" con unas pocas líneas de código ( Flash CS3 para crear TV niebla en vigor en 1 segundo ). Ahora nos ocuparemos de otro de los efectos "espectaculares" que, como veremos más adelante, permite la creación de efectos visuales interesantes, como en el ejemplo se muestra a continuación: los parámetros variados para observar los diferentes efectos, al hacer clic con el ratón sobre la imagen generada Esto se puede mover.

Cargando flash ...

En esta ocasión, también se agrega un nuevo componente simple (Check) en Undolibrary ! Pon al día tu repositorio SVN. La fuente está disponible aquí: MapEffect.zip

Continuación ...

El módulo de cálculo

El "módulo" es uno de los aritmentiche disponible en casi todos los lenguajes de programación (Que lo utilicé por primera vez con la base de Commodore 64) . Puede aparecer como un operador simple, como en el caso de ActionScript o JavaScript, que utilizan el carácter "por ciento" (b%), o como un método o una instrucción. Para los desarrolladores pueden ser útiles en contextos aparentemente diferentes. Gskinner habló recientemente, que muestra algunos ejemplos clásicos, pero interesante.

En pocas palabras, la operación devuelve dos números de forma que el resto de su división. Para completar, se dice que la operación del módulo es un tema muy amplio, lo que dije en el cifrado RSA ! Esta vez, sin embargo, hablar de códigos o cifrados, pero las cosas útiles mucho más simple.

Divisible por alternar ...

El primer uso que podemos hacer la operación del módulo es determinar si un número es divisible por un número b! Si el risultatto de a% b (% usaré aquí la notación para indicar el funcionamiento del módulo) es igual a cero, uno es divisible por b. Recuerdo que cuando tenía que ver con un problema como yo no sabía de la operación del módulo. En el Commodore 64 que necesitaba saber si un número es divisible por 2. En el momento en que utiliza esta sintaxis (He encontrado el código origionale - año 1983):

1
2
3
10 INPUT A
12 B = A / 2: Si B = INT (B) THEN PRINT "Aceptar El Número" A "Y" EQUAL ": GOTO 10
14 print "El numero" A "Y" ODD ": GOTO 10

El BASIC de la Commodore 64, sin embargo, no tienen el módulo de operación - por lo menos que yo recuerde!

Básicamente lo que yo estaba haciendo eso por su propia naturaleza hace que el funcionamiento del módulo: 2 verificado que la división no tuvo descanso, en este caso, comprobar que el resultado no contiene decimal ( IF B = INT(B) )! Si la operación de división es igual a su total, el número es igual!

Si a tener nuestro valor a la prueba, lo mismo puede ser resuelto por:

1
2
3
a % 2 ) == 0 ) { if ((a% 2) == 0) {
/ / Incluso
}

O, por 3, por:

1
2
3
a % 3 ) == 0 ) { if ((un 3%) == 0) {
/ / Divisible por 3
}

Pequeña nota: gracias a la pista si tiene que ver con las potencias de 2 annche hay una manera más rápida de comprobar si un número es par o impar. En la notación binaria, de hecho, los números son iguales a cero el primer bit! Por lo tanto, usando los operadores lógicos, se puede saber si un número es par o impar simplemente "protestantes" que el primer bit:

1
2
3
! ( a & 1 ) ) { if ((a + 1)) {
/ / Incluso
}

En la Asamblea, por ejemplo, esto es pan de cada día! Es aún más inmediata y simple (el Motorola 68020, por ejemplo, había una instrucción BTST que "probó" un poco sola ;) ). – moltiplicazione bit a bit) tra il nostro valore a e 1 (chiamato maschera ). Las operaciones lógicas (AND, OR, NOT, XOR, etc ...), de hecho, se sabe que son más rápidos en términos de carrera, y luego "máquina del tiempo"! (a & 1) realiza la operación lógica de Y ( & - Multiplicación bit a bit) entre nuestro valor a , y 1 (llamada máscara). Si a = 7 (00000111), por ejemplo:

1
2
3
Y 00000111
= 00000001
00000001; extraño

Si a 8 =:

1
2
3
Y 00001000
= 00000001
00000000, la igualdad de

No sólo podemos ver los números, es decir, con el primer bit a 0, y por lo tanto divisible por 2, pero también puede ocurrir si un número es divisible por 4, 8, 16, 32, 64, etc ... utilizando los formularios correspondientes:

1
2
3
! ( a & 3 ) ) { if ((a + 3)) {
/ / Divisibles por 4 (mask = 00.000.011 = 3), desde el 4 es 00000100)
}

Si los dos últimos bits se ponen a cero el número es divisible por 4! Si los últimos 3 bits (máscara 00.000.111) son a cero el número es divisible por 8! Etcétera :)

Gskinner muestra el uso del módulo en el caso de la generación de alternativas de valores. Un ejemplo clásico es cambiar el fondo de una lista de temas:. Blanco y gris Gskinner ofrece:

1
2
3
4
5
rowIndex % 2 == 0 ) { if (rowIndex% 2 == 0) {
rowColor = 0xFFFFFF;
{ Else {}
rowColor = 0xCCCCCC;
}

En primer lugar, el código anterior se puede resolver con una sola línea de código:

1
2 == 0 ) ? 0xFFFFFF : 0xCCCCCC ; rowColor = (rowIndex% 2 == 0) 0xFFFFFF: 0xCCCCCC;?

Por otra parte, en este caso, me volvería a evitar realmente realizar una "fuerte" forma de operación. Esta situación particular es a menudo participan en un bucle, por lo que sería "bueno" no desperdiciar ciclos de reloj de la máquina. En estos casos me gusta más limpio (y lógica): Se

1
fooIndex == false ) ) ? 0xFFFFFF : 0xCCCCCC ; rowColor = (= fooIndex (fooIndex == false)) 0xFFFFFF: 0xCCCCCC;

o false , a seconda di come vogliamo impostare inizialmente il nostro colore sfondo. Donde fooIndex precedentemete es un valor establecido en true o false , dependiendo de la forma en que inicialmente nuestro color de fondo. Este enfoque es más sutil, menos inmediato, en un primer momento, pero más rápido, ya que realiza lógica de verdadero / falso. la condizione (fooIndex == false) sarà falsa e di conseguenza fooIndex verrà impostato da true a false. Si fooIndex es verdad, cuando se ejecuta la instrucción (fooIndex = (fooIndex == false) ) la condición (fooIndex == false) es falsa y por lo tanto fooIndex se establecerá de verdadero a falso. verrà impostato da false a true! La segunda vez, sin embargo, la condición (fooIndex == false) es cierto y luego fooIndex se encuentra de false a true! Y así sucesivamente ...

Repeticiones: para ver el comportamiento

La aritmética finita, que es la base del funcionamiento de la operación del módulo, se refiere a menudo como la aritmética del reloj. Un reloj clásico tiene un disco con las manos divididas en 12 horas (12 más 12 de día y noche!), Suficiente para indicar cualquiera de las 24 horas del día. A las 08:00 AM Si te pregunté a qué hora el reloj marcará entre 18 horas, su respuesta sería de 8 +18 = 26! Pero la 2:00 de la noche! Involuntariamente y sin saberlo, tal vez, realizar operaciones de forma cada vez conitnuamente se trata de tiempos.

En Italia se utilizan para el sistema de 24 horas (o mixto). Cuando señalamos a las 16:00 horas de la intención de que en otros países se indica como 04:00 pm. ¿Quién utiliza el am postfix / h de distinguir de las horas de la noche OFA, incluso con más frecuencia realiza la operación del módulo, el módulo 12, en este caso! Los italianos, y otros, sin embargo, estar acostumbrado a considerar las 24 horas, realizar operaciones con el Formulario 24!

Cuando estoy 11 de la mañana (11:00 para todos) y que "en cinco horas", los italianos responden 5 +11 = 16 (cuatro de la tarde), un extraño podría también responder a 5 +11 = 16:00. Desde el 5 + 11 aritmética clásica, es, obviamente, 16, al igual que el extraño para satisfacer 16:00? Simplemente ejecute el módulo 12 en el resultado: 5 + 11 = 16 mod 12 = 4. No es necesario que se tome una calculadora para verificar la exactitud de los cálculos, pero estas medidas son "un poco de todo, muestra una cara de un reloj y colocar las manos sobre los 11 mentalmente, a continuación, añadir - siempre visualmente - 5 horas, como por arte de magia que realmente va a alrededor del 4! Es por eso que se llaman las cuatro de la tarde 16 :)

En Italia, en cambio, se utiliza un formulario 24, de hecho: 11 +5 = 16 mod 24 = 16. Cuando estoy a 23:00 pm, cinco horas después de la 28:00, no se, porque modulo 28 12 = 4! 122514884225 Formulario 24 = 17! Lo que pasa es que el resultado clave de la Forma 24 no será superior a 24. Pero lo más interesante es que los números se repiten indefinidamente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1% de 24 = 1
2% de 24 = 2
3% de 24 = 3
...
22% 24 = 22
23% 24 = 23
24% 24 = 0
25% 24 = 1
26% 24 = 2
27% 24 = 3
...
48% 24 = 0
49% 24 = 1
50% 24 = 2
51% 24 = 3
...

Esta repetición es una facilidad desarmante. Imagine, por ejemplo, deben tener un objeto, un clip de película, similar a un tablero de ajedrez, en cuatro columnas. Crear un quandrato MovieClip, 55 × 55 píxeles y el esportiamolo panel de propiedades como Simbolo . El siguiente código tiene cuatro columnas de nuestro clip de película y la "cabeza" con la operación del módulo:

1
2
3
4
5
6
7
Number = 4 ; var col: Número = 4;
var i= 0 ; i < 12 ; i ++ ) { for (var i = 0; i <12; i + +) {
Sprite = new Simbolo ( ) ; var s: Sprite = new Symbol ();
s ) ; addChild (s);
= ( i % col ) * 60 ; s. = x (con i%) * 60;
= Math . floor ( i / col ) * 60 ; s. y = Matemáticas . piso (i / col) * 60;
}

cresce in modo indefinito. Como se puede ver en el código, la variable i ciclo for cultivo de forma indefinida. Sin embargo, la coordenada x que nunca de nuestro clip de película supera un determinado valor, y se repite indefinidamente! Aquí está un ejemplo concreto:

Cargando flash ...

A través de las dos ruedas se puede variar el número de columnas (la forma) y el número total de elementos, usando el algoritmo anterior.

Continuación ...

Papervision3D: BasicView

Papervision3D 2.0 (GreatWhite) aún está en desarrollo y hay muchas funciones que se agregan casi todas las semanas. En abril, se inauguró en el blog del desarrollador ( http://dev.papervision3d.org/ ), sin embargo, la versión 2.0, no está publicado oficialmente todavía es a menudo difícil de arrebatar el verdadero potencial. Una de las innovaciones introducidas recientemente, sin embargo, es el nuevo objeto BasicView un ambiente que crea en 3D con muy pocas líneas de código. Es suficiente para crear este objeto para que la escena, vista y la cámara de un solo golpe.

Continuación ...

undolibrary: ActionScript 3.0 de la biblioteca en Google Code

Me abrió un proyecto en Google Code : undolibrary. Por el momento, esta biblioteca sólo contiene un componente (Perilla - perilla) para ser utilizado con ActionScript 3.0. Menciono esto porque este componente es un requisito previo para una serie de tutoriales / fuentes en Flash que quería poner a disposición.

Cargando flash ...

Google Code

Primero de todo, introducir el concepto de código de Google para los que eran extranjeros. Google Code es un servicio gratuito proporcionado por Google con el fin de compartir el código, pero, sobre todo, de compartir y colaborar con un sistema de control de versiones (Subversion) y wikis útil para los equipos de desarrollo (principalmente fuente abierta) o programadores individuales. En el sitio Google Code incluyen:

Usted puede buscar otros proyectos, con un motor de búsqueda especialmente diseñado. Muchos grupos de desarrollo, integrado por los equipos que se encuentran en zonas geográficas alejadas, aprovechando esta participación para trabajar juntos, respaldados por un sistema de versiones bien establecidas (checkout / checkin no se superponen o Supprot para crear sucursales - proyectos de spin-off) . Las bibliotecas y herramientas tales como Papervision3D , Tweener o as3corelib , por ejemplo, se encuentra en Google Code disfrutando de un lado de una gran cantidad de desarrollo de otros y el acceso público a descargar el código fuente y documentación.
Lo importante, entonces, es la posibilidad - abrir un proyecto - para el acceso y la visualización. Si desea proteger su obra o que sea totalmente privada y no pública.

Continuación ...

Crear eventos personalizados en ActionScript 3.0

La creación de eventos personalizado en ActionScript 3.0 es simple. Uso, entonces, le permite utilizar el método addEventListener() y hacer que nuestro objeto de todas las normas. ) BottoneEvent . Si hemos creado una clase, tales como Bottone , esto es correcto asociar a uno o más eventos a través de una clase especial (derivado de la clase Event ) BottoneEvent . Podríamos hacer todos los eventos que afectan la operación de nuestro tema: el clic, haga click en, o cualquier otro evento! Así como la definición de nuestra base personal. El esqueleto - genérico - una clase de evento personalizado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package {
/ *
** @ Nombre: BottoneEvent.as
** @ Descripción: Clase derivada de sucesos para administrar sus propios eventos personalizados
** @ Autor: deshacer = =
** @ Web: http://www.undolog.com
** @ E-mail: @ g.fazioli undolog.com
* /
.*; flash.events importación .*;

BottoneEvent extends Event { BottoneEvent extiende la clase pública de eventos {

String = 'pluto' ; // codice qualsiasi, anche 'mioevento' in minuscolo public static const MIOEVENTO: cadena = 'bar', / / cualquier código, incluso "mioevento 'en minúsculas

Valore : Number = NaN ; var valor público: Número = NaN;
/ *
** @ Nombre: BottoneEvent
** @ Descripción: constructor
* /

type , bubbles , cancelable ) ; super (tipo, burbujas, cancelable);
Value = v ; este valor = v.;
}

/ *
** @ Override
* /
clone ( ) : Event { anular clon función pública (): Evento {
this . type , this . Value , this . bubbles , this . cancelable ) ; KnobEvent nuevo retorno (tipo this., este valor, esta burbuja, esta cancelable...);
}
}
}

Continuación ...

FIVe3D: efectos de un cubo! La espera de Flash 10

Lo más probable, cuando se trata de la nueva versión de Adobe Flash, librerías 3D de "bajo nivel" como FIVe3D a terminar mal! Sin embargo, antes de la "Papelera", aquí es un ejemplo de lo que se puede lograr (con la última versión 2.1):

Cargando flash ...

El código de la demo anterior es bastante elocuente, por lo que no me propongo completamente en línea. Inserción, sin embargo, algunas interesantes piezas de código.

Actualización: la fuente , haga clic aquí

Continuación ...

Adobe Flash Player 10 beta liberada y API de Google Maps

Actualización: ver Cómo utilizar Google Maps en Adobe Flash CS4

Actualización: Parece que Google está mal y en vez de escribir Flex escribió Flash! Moral de la situación, el API de Google Maps ha sido puesto en libertad sólo para Flex y Flash no funcionan en el medio ambiente: una demostración de la confusión que estos dos "ramas" (Flex / Flash) están causando! Lea en este sentido, maldita sea google hacerlo bien! el google map API de Flex no es Flash!

Continuación ...