2008-11-27 14 views
5

Ahora mismo estoy desarrollando un pequeño motor de gráficos 2D orientado a lienzo para un juego, y he estado buscando en varias fuentes sugerencias para aplicar al diseño de mi sistema. Pero, obviamente, la solución más probada en la batalla es flash, por lo que me preguntaba cómo se diseñó Flash. Encontré algunas fuentes sobre el funcionamiento de Flash, pero la mayoría son muy básicas y están orientadas a diseñadores y artistas, pero me gustaría aprender más sobre las agallas del sistema. Mi siguiente paso es descargar el código fuente de Flex y navegar por él, pero antes me gustaría tener una "guía" para aprovechar al máximo mi tiempo en la base de códigos. ¿Alguna sugerencia de buenos recursos y artículos en línea?¿Cómo funciona Flash?

Gracias!

Edit: Para hacerlo más claro, estoy buscando el funcionamiento interno de Flash porque mi objetivo aquí es hacer algo similar a Flash, pero no tan poderoso por supuesto, que funciona en un navegador sin complementos . Por desgracia, HTML + Javascript puro.

También la razón por la que no estoy usando Flash como tal es porque no cumple mis requisitos (free + no plugin), y porque no tengo soporte Flash en mis plataformas de destino, además estoy reinventando la rueda aquí por diversión y autoeducación. Ah, y ya sé cómo usar Flash :)

+0

No es una respuesta directa a su pregunta, así que lo tengo como comentario ... ¿Conoce http://ejohn.org/blog/processingjs/? Es un puerto de Procesamiento a JavaScript, cerca de su objetivo final ... Dojo JS toolkit también permite que JS dibuje en IE o en navegadores compatibles con Canvas. FYI. – PhiLho

+0

No responde mi pregunta en absoluto, pero es un proyecto muy bueno, y similar de muchas maneras a lo que necesito, investigando. –

Respuesta

7

Bueno, en la raíz de su contenido Flash hay un objeto de escenario (una instancia de la clase Stage). Esa etapa es el nodo raíz de un árbol de objetos de visualización, cualquiera de los cuales puede contener activos gráficos (líneas, campos de texto, etc.) u otros objetos de visualización. Cómo "funciona" Flash es que, X veces por segundo, el reproductor Flash dibuja todo el árbol de visualización en la pantalla. El jugador también recopila la entrada del usuario (KeyboardEvents, etc.) del sistema operativo y los entrega a cualquier objeto que se haya registrado para ellos.

Su trabajo como creador de contenido, entonces, es llenar esta Etapa con elementos secundarios (del tipo DisplayObject o cualquier subclase), que el motor Flash dibujará en la pantalla para usted. Puede poblarlo con elementos secundarios como Sprite y MovieClip y TextField, que son los componentes básicos del contenido de Flash, o puede crear instancias como ScrollBar o DataGrid, que son componentes de alto nivel con el funcionamiento interno complejo habitual.

Y, por supuesto, puede ampliar cualquiera de estas clases para incluir sus propios gráficos personalizados o lógica de clase, o crear clases no visuales que no sean parte del árbol de visualización. Y puede cargar en otro contenido flash, o hacer conexiones HTTP, etc. etc.

Eso es todo suponiendo que usted quiere decir AS3. ¿Eso ayuda? Si no, vas a tener que hacer que tu pregunta sea más específica. ;)

+0

Sí, ayuda, pero si tuviera algunos buenos enlaces de recursos sería aún mejor. –

+0

Um, debería haber sido más específico, sus enlaces a los documentos son de gran ayuda, pero me preguntaba si había algunos documentos o documentos en esas líneas –

+0

Veo a dónde se dirige. Las cosas en general son muy similares a la tabla de FL que vinculó (pero con menos cuadros de "Dispositivo XXX", y creo que "SO del dispositivo" y "Búfer de cuadros" serían parcialmente reemplazados por los ganchos del complemento del navegador). Pero no conozco ningún documento oficial en particular ni especificaciones públicas. – fenomas

1

Si vas a hacer un juego, se mantenga alejado de Flex. Y honestamente, mirar el código fuente de eso es probable que te confunda más que ayudarte. Flex es muy bueno para aplicaciones intensivas de GUI y ayuda a acelerar el desarrollo de dichos productos. Sin embargo, no es muy rápido ni especialmente adecuado para juegos.

Una de las principales ventajas de Flash es que realmente no tiene que preocuparse mucho por el "funcionamiento interno", aunque una comprensión básica de ellos ayuda de forma natural.

Flash Lite es bastante diferente de su hermano mayor, así que no le preste demasiada atención.

Además, por el amor de Dios, aprender Actionscript 3.0 y mantenerse alejado de Actionscript 2. 3.0 es mucho mejor en todas las formas imaginables (al menos para nosotros los codificadores).

EDITAR: Para aclarar: Existen algunas confusiones con respecto al término Flash. Hay tres partes para todo, el complemento que se ejecuta en su navegador, la "tecnología misma" y la herramienta de creación. Todos estos simplemente se llaman Flash. Flex aún más confuso. Es un marco que se ejecuta sobre Flash. Como decir, Swing para Java (nunca he usado eso para que la comparación sea totalmente incorrecta). Todo lo que puedes hacer en Flex también es posible en Flash. Flex es una fuente abierta gratuita, pero IDE, Flex Builder no lo es. Flex Builder es muy útil incluso si está ejecutando proyectos de ActionScript "puros". Pero también hay muchas alternativas más baratas. Yo personalmente prefiero FlashDevelop.

+0

El entorno de flexión es probablemente bastante bueno para construir juegos as3 pero sí la biblioteca de flex no es lo que necesita – jcoder

+0

Sí, estoy de acuerdo, acabo de leer algunos de los códigos de Flex, pero no era para nada lo que estaba buscando para. Erróneamente imaginé que el código del motor de Flash estaba incluido en el SDK OpenSource de Flex, pero no fue –

+0

Tenga en cuenta que aunque Flash Player en general no es de código abierto, Adobe actualizó el motor AS3, lo que debería exponer la arquitectura esencial. Google "mozilla tamarin" para obtener información. – fenomas