Categoría "Flash CS3"
Para completar, en relación con la pintura de Flash CS3: efectos con Matrix matrices quiero hacer hincapié en que la Matrix no son necesarios para el comportamiento indicado en el post anterior. De hecho vemos en el ejemplo siguiente:
Flash Player Cargando ...
El código es ligeramente diferente de la anterior, es como sigue:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| / * Código de ActionScript 2.0 ** * / . MouseEvent ; flash.events de importación. MouseEvent ; . Matrix ; . flash.geom importación Matrix ; / / Bandera para detectar la mousedown Boolean = false ; var md: Boolean = false; / / Crear un frente de la pizarra Sprite = new Sprite ( ) ; var lvg1: Sprite = new Sprite (); . lineStyle ( 0 , 0xffffff ) ; lvg1 gráficos. LineStyle (0, 0xFFFFFF).; . beginFill ( 0x666666 ) ; .. lvg1 gráficos beginFill (0x666666); . drawRect ( 0 , 0 , 199 , 199 ) ; .. lvg1 gráficos drawRect (0, 0, 199, 199); . endFill ( ) ; lvg1 gráficos. endFill ().; lvg1 ) ; addChild (lvg1); = lvg1 . y = 30 ; lvg1 x = lvg1 y = 30..; / / Crear la pizarra inclinada Sprite = new Sprite ( ) ; var lvg2: Sprite = new Sprite (); . lineStyle ( 0 , 0xffffff ) ; lvg2 gráficos. LineStyle (0, 0xFFFFFF).; . beginFill ( 0x666666 ) ; .. lvg2 gráficos beginFill (0x666666); . drawRect ( 0 , 0 , 199 , 199 ) ; .. lvg2 gráficos drawRect (0, 0, 199, 199); . endFill ( ) ; lvg2 gráficos. endFill ().; = 400 ; lvg2 x = 400.; = lvg1 . y ; lvg2 y = y lvg1..; = 45 ; . lvg2 rotación = 45; = lvg2 . scaleY = . 6 ; lvg2 scaleX lvg2 scaleY = 6...; lvg2 ) ; addChild (lvg2); / / / / Eventos Paint ( MouseEvent . MOUSE_DOWN , _onMouseDown ) ; . lvg1 addEventListener ( MouseEvent MOUSE_DOWN, _onMouseDown.); ( MouseEvent . MOUSE_MOVE , _onMouseMove ) ; . lvg1 addEventListener ( MouseEvent MOUSE_MOVE, _onMouseMove.); ( MouseEvent . MOUSE_UP , _onMouseUp ) ; . lvg1 addEventListener ( MouseEvent MOUSE_UP, _onMouseUp.); / / e : MouseEvent ) : void { función de _onMouseDown (e: MouseEvent ): void { "_onMouseDown" ) ; trace ("_onMouseDown"); : uint = 0xffffff ; var c: uint = 0xFFFFFF; . graphics . lineStyle ( 10 , c , 1 ) ; ... y de destino gráficos lineStyle (10, c, 1); . lineStyle ( 10 , c , 1 ) ; .. lvg2 gráficos lineStyle (10, c, 1); . graphics . moveTo ( e . localX , e . localY ) ; ... y el objetivo de gráficos moveTo (and. localX y localY.); . moveTo ( e . localX , e . localY ) ; .. lvg2 gráficos moveTo (and. localX y localY.); md = true; } / / e : MouseEvent ) : void { md = false ; } _onMouseUp function (e: MouseEvent ): void {md = false;} / / e : MouseEvent ) : void { _onMouseMove function (e: MouseEvent ): void { "_onMouseMove" ) ; trace ("_onMouseMove"); md ) { if (md) { . graphics . lineTo ( e . localX , e . localY ) ; ... y el objetivo de gráficos lineTo (and. localX y localY.); . lineTo ( e . localX , e . localY ) ; .. lvg2 gráficos lineTo (and. localX y localY.); } } |
En este caso las filas 22 a 25 muestran que incluso con rotación simple y desplazamientos el efecto se repite.
Más información ...
Jugando con el objeto de gran alcance y versátil Matrix (matriz), vinculado a las transformaciones, que puede hacer cosas raras. Estas herramientas se utilizan para aplicar las transformaciones en particular a un objeto visual, como un Sprite. Puede, por ejemplo, escalar, rotar, o giro (inclinación) un Sprite. e rotation ), per l'effetto Skew bisogna ricorrere direttamente alle matrici. Mientras que las dos primeras funciones (escala y rotación) los objetos Sprite (y otros) ofrecen directamente las propiedades ( scaleX / scaleY , y rotation ), el efecto de sesgo debe apelar directamente a las matrices. Lo que me gustaría destacar aquí es que cuando se modifica un objeto gráfico todas sus coordenadas internas se desplazan:
Más información ...
Algunos, con razón, discutir acerca de la Adobe AIR, Adobe Integrated Runtime (antes Apollo) ofrecido por Adobe. ¿De qué estamos hablando? Después de todo el aire es todavía una versión beta ( la última versión es 12/12/2007 - la beta 3 ) y su éxito, incluyendo, queramos o no, depende de muchos factores.
Más información ...
Que decirlo ahora: no se gana nada! Aparte de la soberbia - si algo - que han resuelto el problema.
QUEST - APLICACIÓN
Cómo crear una herramienta para borrar, eliminar, borrar, una "porción" de los gráficos dibujados con la API de ActionScript 3.0?
, espongono la proprietà graphics , un puntatore ad un altro oggetto che “serve” tutte le funzioni grafiche di disegno runtime. Con ActionScript 3.0 Algunos de los objetos visuales, como el MovieClip o de Shape , mostrando las propiedades de graphics , un puntero a otro objeto que "sirve" todas las características gráficas de tiempo de ejecución de los dibujos. Por ejemplo, usted puede desarrollar una aplicación de dibujo sencillo. , in modo semplice e rapido. Este objeto graphics le permite dibujar cualquier cosa, por ejemplo en un objeto de Shape , de una forma sencilla y rápida. El problema es que algo una vez que se extrae puede limpiar todo, pero no una sola parte.
Dibuja una línea es fácil:
1 2 3 4 5 6
| Shape = new Shape ( ) ; myShape var: Shape = new Shape (); myShape ) ; addChild (myShape); / / . lineStyle ( 2 , 0xff0000 , 1 ) ; .. myShape gráficos lineStyle (2, 0xFF0000, 1); . moveTo ( 0 , 0 ) ; .. myShape gráficos moveTo (0, 0); . lineTo ( 100 , 100 ) ; .. myShape gráficos lineTo (100, 100); |
Dibujado algo que se puede limpiar todo con la simple llamada a clear() :
1
| . clear ( ) ; myShape gráficos claros ()..; |
Pero si quiero "eliminar" un solo punto? O de las coordenadas 50,50 hasta 100.100?
Buscando en Internet he encontrado varios ejemplos de "aplicaciones de diseño" y, de hecho, la herramienta no ofrece ningún apoyo o "Eliminar".
¿Tiene alguna solución?
Más información ...
. De nuevo en el "uniforme", como ocurrió con los eventos (ver el nuevo evento el manejo de Flash CS3 y Flash CS3: La nueva gestión de eventos ), una de las muchas nuevas características de ActionScript 3.0 es la desaparición de todos los ad hoc de métodos destinados a la creación de objetos particulares, como por ejemplo: createEmptyMovieClip() o el famoso attachMovie() . Con ActionScript 3.0 que el operador new es suficiente para llevar a cabo todo el edificio de operaciones. Un nuevo clip de película, por ejemplo, se crea (en tiempo de ejecución) con el siguiente código:
Pero vamos! Si tengo un símbolo de la biblioteca y cómo puedo ir si quiero añadir tiempo de ejecución de attachMovie() se ha ido? La solución no es muy diferente de lo que sucedió en ActionScript 2.0. En primer lugar tienes que ir a la biblioteca, seleccione el símbolo y abra la ventana de propiedades. A continuación, marque la casilla Exportar para encadenar ActionScript - como sucedió en Flash 8. Una biblioteca de símbolos como una clase base siempre ha flash.display.MovieClip , pero esto no nos interesa mucho. Lo interesante, sin embargo, es la clase de parámetro que se establece por defecto (cuando te registras Exportar para ActionScript) con el nombre del símbolo. Lo importante a destacar es que esta es una nueva forma en Flash CS3 (y ActionScript 3.0). El símbolo a la exportación debe tener una referencia de clase. La curiosidad es que no estamos obligados a crear nuestra propia fuerza a la clase (se extendió desde flash.display.MovieClip ), a pesar de que podía hacerlo.
Más información ...
Yo ya había hablado en Flash CS3: La nueva gestión de eventos . Vuelvo a la pregunta de sottolieare la diferencia de este nuevo enfoque en comparación con versiones anteriores de ActionScript. Esquemáticamente, tenemos una situación general de este tipo:

Cualquier objeto que admite eventos, en última instancia, siempre se expone el método addEventListener (). En la documentación, entre otras cosas, leemos:
¿Qué hay de nuevo para los detectores de eventos en ActionScript 3.0
[...] Para añadir detectores de eventos en ActionScript 2.0 es a veces se utiliza addListener () y, a veces a addEventListener (), mientras que en ActionScript 3.0 mediante addEventListener () en todas las situaciones.
[..]
La gestión de eventos, entonces, es estandarizada también a nivel de oyente verdadero y propio. Todas las "características" de escuchar, de hecho, tienen la siguiente estructura:
1 2 3
| eventObject : EventType ) : void { eventResponse function (eventObject: EventType): void { / / Las acciones en respuesta a los eventos se definen aquí. } |
o una sua sottoclasse. EvenType es siempre un objeto de clase Event o una subclase. . Esto permite obtener información siempre específicas para el evento en particular, además de manipular las propiedades estándar como target , o currentTarget .
Una diferencia importante con las versiones anteriores de ActionScript, con respecto al oyente, es que:
En ActionScript 2.0, los detectores de eventos pueden ser funciones, métodos y objetos, mientras que en ActionScript 3.0 pueden ser detectores de eventos sólo funciones o métodos.
Así que, después de haber utilizado para algún tipo de estructura el tiempo "a los acontecimientos de las versiones anteriores de Flash, debo decir que este nuevo enfoque es realmente agradable. Es un poco 'que el desarrollo con ActionScript 3.0 y, después de una pequeña pérdida inicial (sólo para recuperar lo que se suponía anteriormente) ahora no puedo comprender cómo podía soportar el "viejo" método de los acontecimientos de las versiones anteriores.
Más información ...
Google tiene API - en Javascript - para poner sus mapas en cualquier sitio web Viediamo cómo lograr lo mismo con Flash.!
Partimos de un componente gratuito, UMAP (Universal ActionScript 3.0 Asignación de API - Integración con Google Maps), desarrollado por AFComponents , algunas empresas organizados de forma vertical de componentes para Flash / Flex realmente interesante y asequible. En el sitio, donde usted debe registrarse para aprovechar las descargas gratuitas, también hay versiones de UMAP para ActionScript 2.0: MAPA G Ver.2.6.1 . En este caso vamos a analizar la versión 0.4 beta de UMAP para ActionScript 3.0 (dentro del paquete hay también un componente de Flex). Eso vamos a ver es - obviamente - una versión beta y no está, entonces, algunas de las características presentes en la versión de ActionScript 2.0 ( G Ver.2.6.1 MAPA ). Sin embargo, la propiedad ejecutar impecablemente hacia el futuro, parece más interesante centrar la atención en esta versión, he probado ambos y, a pesar de la mayor integridad de la liberación para ActionScript 2.0, ActionScript 3.0 versión beta es mucho más potente.
Más información ...
Querido Santa Adobe,
a pesar de haber recibido ya dos parches para Flash CS3 (versión 9.0.2), algunos problemas en su uso han aparecido en todo el software en el mundo, especialmente en este comunicado que los cambia ha sido objeto de muchos.
- ActionScript L 'editor, por ejemplo, parece ser lenta y desigual! Consideremos, Adobe querido Santa, que mi coche tiene 8Gbyte de RAM y un procesador Intel Quad Core Duo!
- Durante el formateo automático, líneas de código como este por debajo, están "mal entendido" y volver a formatear el mal:
1
| ( MouseEvent . CLICK , function ( e ) { myfunc ( ) ; } ) ; . mybtn addEventListener ( MouseEvent CLICK, function (e) {myfunc ();}.); |
Adición de llaves donde debe estar:
1 2
| ( MouseEvent . CLICK , function ( e ) { myfunc ( ) ; } ) ; . mybtn addEventListener ( MouseEvent CLICK, function (e) {myfunc ();}.); // < -- chi te l'ha detto?! } / / <- ¿Quién te dijo? |
Así que mejor usar la sintaxis:
- La agenda de Windows, por lo menos en la implementación de Windows Vista, de vez en cuando desaparecía debajo de otros paneles ... La ventana de ayuda, la orientación en una palabra, crea un problema cuando se intenta un proyecto. Este último, de hecho, desaparece detrás de los otros paneles ... misterio! Sin embargo, este defecto, como otros, no siempre es reproducible.
- Los componentes tienen un comportamiento extraño: a veces se muestran, en tiempo de diseño, como rectángulos blancos ... pero seguirá funcionando en tiempo de ejecución!

- El 'anterprima scale9Grid, como se indica en la documentación de nuevo y ser capaz de mostrar correctamente los objetos cambian de tamaño en tiempo de diseño, continúa siendo afectado por los problemas de la versión anterior! ¡Qué lástima!

Sin embargo en la Navidad es todo mejor ... Así que, querido Santa Adobe, esperamos con interés las futuras actualizaciones.
Más información ...
Finalmente con ActionScript 3.0 ya no tienen dos de gestión diferente de los acontecimientos como lo hacían antes de ActionScript 2.0 (ver: La gestión de eventos: similitudes entre Flash y Javascript ). El método addEventListener() , omnipresente en la nueva arquitectura permite la gestión de nuevos y excepcionalmente limpio todos los eventos posibles, incluso las personales. La nueva organización en el paquete le permite importar los eventos que servimos y tratar a todos por igual:
Más información ...
Flash CS3 tiene tantas innovaciones, incluyendo el "extraño" para especificar a recopilar algunos consejos sobre cómo escribir código. Esto sucede, por ejemplo, cuando tenemos que hacer con los objetos TextField . He tenido que añadir una cadena al final de un campo TextField con la notación clásica:
1
| + = "Stringa aggiunta" ; . mioTextField_txt texto + = "cadena agregó que"; |
Pero eso es ActionScript 3.0, al terminar la película, me sentí (advertencia) - o recomendados:
Advertencia: 3551: Añadir texto a un TextField empleando + = es mucho más lento que usando el método de TextField.appendText ().
Cool! Vamos a ver el hecho de que la SINOPSIS método appendText() en realidad dice:
) applicata a una proprietà text (ad esempio <strong>someTextField.text += moreText</strong> ), in particolare nel caso di un campo di testo con una quantità di contenuto significativa. Añade la cadena especificada por newText al final del campo de texto. Este método es más eficiente que una asignación de suma ( += ) que se aplican a un text (por ejemplo, <strong>someTextField.text += moreText</strong> ), en particular en el caso de un campo de texto con una cantidad de contenido significativo.
Confiamos? Para verificar la seguridad:
1 2 3 4 5 6 7 8 9
| . getTimer ; flash.utils importación getTimer.; uint = 0 ; var i: uint = 0; int = getTimer ( ) ; var s: int = getTimer (); i ; i < 10000 ; i ++ ) { for (i, i <10000; i + +) { + = "Ciao" ; . text_txt texto + = "Hola"; } int = getTimer ( ) ; var f: int = getTimer (); f - s ) ; trace (f - s); |
Tiempo: 9360 - en mi máquina, en modo de depuración. Vamos a tratar según lo aconsejado por el compilador:
1 2 3 4 5 6 7 8 9
| . getTimer ; flash.utils importación getTimer.; uint = 0 ; var i: uint = 0; int = getTimer ( ) ; var s: int = getTimer (); i ; i < 10000 ; i ++ ) { for (i, i <10000; i + +) { ( "Ciao" ) ; . text_txt appendText ("Hello"); } int = getTimer ( ) ; var f: int = getTimer (); f - s ) ; trace (f - s); |
Hora: 8415 
Nada grande ... pero es la verdad! ). El método appendText() es más rápido y más potente de pre-incremento del operador ( += ). ¿Por qué? La razón más obvia es la siguiente: el operador ( += ) funciona en cualquier tipo de datos. Además, en un lenguaje orientado a objetos de este operador no está estructurado como en C, pero es simplemente "oggettato". En C + +, por ejemplo, puede sobrescribir (anular) el operador como parte de la estructura de la lengua objeto en sí mismo. En última instancia appendText() es más rápido porque su objetivo es "arreglar" a una cadena y por lo tanto no hace muchas preguntas "," en ella. El operador ( += ), en lugar, debe funcionar para cualquier tipo de datos y por lo tanto no está optimizado para las cuerdas. En C, por el contrario, el operador ( += ) es una función en un nivel bajo y siempre será más rápido que una llamada a una función.
Más información ...
Últimos Comentarios
Marcos : Muchas gracias, he encendido
Lo resuelto mediante el establecimiento de [cc_objc] / / OptionViewController.m - ...
Giovambattista Fazioli : @ Marcos: Le sugiero que pensar en un enfoque más correcto. Si ejecuta la subclase de la ficha ...
Marcos : Disculpe el spam .. Me di cuenta de que hay un error .. aquí es la corrección [cc_objc] / PrimaClasse.h **** / # import ...
Marco : olvidado .. en [ICC] OptionViewController [/ cci] para [CCI] @ syntetize [/ cci] puse el delegado
luis : muy clara y sencilla tengo que admitir que escribir un pa casi no utilizan los delegados creados por ...