Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Action Script 3.0

No description
by

Attis Alejandro

on 27 September 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Action Script 3.0

Programación orientada a
objetos con ActionScript 3.0 Como ActionScript fue originalmente un lenguaje de creación de scripts,
en ActionScript 3.0 la compatibilidad con la programación orientada a objetos es opcional.
Esto proporciona a los programadores la flexibilidad de elegir el mejor enfoque para proyectos de ámbito y complejidad variables. Programación orientada a objetos
Clases
Interfaces
Herencia
Temas avanzados Fundamentos de la programación
orientada a objetos Introducción a la programación
orientada a objetos Tareas comunes de la programación
orientada a objetos Conceptos y términos importantes Clases Definiciones de clase Atributos de clase Cuerpo de la clase Atributos de propiedad de clase Atributo static Atributos de espacio de nombres
definido por el usuario Variables Variables estáticas La programación orientada a objetos es una forma de organizar el código de un programa
agrupándolo en objetos, que son elementos individuales que contienen información (valores
de datos) y funcionalidad. En la práctica, la programación orientada a objetos consta de dos partes. Por un lado, las
estrategias y técnicas para diseñar un programa (diseño orientado a objetos). Esto es un tema
amplio que no se tratará en este capítulo Atributo: característica asignada a un elemento de clase (como una propiedad o un
método) en la definición de clase.
Clase: definición de la estructura y el comportamiento de objetos de un tipo determinado
Jerarquía de clases: la estructura de varias clases relacionadas, que especifica qué clases
heredan funcionalidad de otras clases.
Constructor: método especial que se puede definir en una clase y que se llama para crear
una instancia de la clase.
Tipo de datos: tipo de información que una variable concreta puede almacenar. En
general, tipo de datos significa lo mismo que clase.
Operador punto: signo de punto (.), que en ActionScript y en muchos otros lenguajes de
programación se utiliza para indicar que un nombre hace referencia a un elemento
secundario de un objeto
Enumeración: conjunto de valores de constante relacionados, agrupados por comodidad
como propiedades de una clase individual.
Herencia: mecanismo de la programación orientada a objetos que permite a una
definición de clase incluir toda la funcionalidad de una definición de clase distinta (y
añadir nueva funcionalidad).
Instancia: objeto creado en un programa.
Espacio de nombres: esencialmente, un atributo personalizado que ofrece un control más
preciso sobre el código al que puede acceder otro código. Definición de clases
Crear propiedades, métodos y descriptores de acceso get y set (métodos descriptores
de acceso)
Controlar el acceso a clases, propiedades, métodos y descriptores de acceso
Crear propiedades y métodos estáticos
Crear estructuras de tipo enumeración
Definir y utilizar interfaces
Utilizar la herencia, incluida la sustitución de elementos de clase Una clase es una representación abstracta de un objeto. Una clase almacena información
sobre los tipos de datos que un objeto puede contener y los comportamientos que un objeto
puede exhibir. La utilidad de esta abstracción puede no ser apreciable al escribir scripts
sencillos que sólo contienen unos pocos objetos que interactúan entre sí. En las definiciones de clase de ActionScript 3.0 se utiliza una sintaxis similar a la utilizada en
las definiciones de clase de ActionScript 2.0. La sintaxis correcta de una definición de clase
requiere la palabra clave class seguida del nombre de la clase. El cuerpo de la clase, que se
escribe entre llaves ({}), sigue al nombre de la clase. dynamic : Permite añadir propiedades a instancias en tiempo de ejecución.
final : No debe ser ampliada por otra clase.
internal : (valor predeterminado)
Visible : para referencias dentro del paquete actual.
public : Visible para referencias en todas partes. El cuerpo de la clase, que se escribe entre llaves, se usa para definir las variables, constantes y
métodos de la clase.
También se puede definir un espacio de nombres dentro de un cuerpo de clase.
ActionScript 3.0 permite incluir en el cuerpo de una clase no sólo definiciones, sino también
sentencias. En las descripciones del modelo de objetos de ActionScript, el término propiedad significa
cualquier cosa que pueda ser un miembro de una clase, incluidas variables, constantes y
métodos. Esto difiere de la manera en que se utiliza el término en Referencia del lenguaje y
componentes ActionScript 3.0, donde se aplica a un concepto menos amplio y sólo incluye
miembros de clase que son variables o se definen mediante un método captador o definidor. ActionScript 3.0 proporciona cuatro atributos especiales que controlan el acceso a las
propiedades definidas dentro de una clase: public, private, protected e internal.
El atributo public hace que una propiedad esté visible en cualquier parte del script. Como alternativa a los atributos de control de acceso predefinidos se puede crear un espacio de
nombres personalizado para usarlo como un atributo. Sólo se puede utilizar un atributo de
espacio de nombres por cada definición y no se puede utilizar en combinación con uno de los
atributos de control de acceso (public, private, protected, internal). Las variables pueden declararse con las palabras clave var o const. Es posible cambiar los
valores de las variables declaradas con la palabra clave var varias veces durante la ejecución de
un script. Las variables estáticas se declaran mediante una combinación de la palabra clave static y la
sentencia var o const. Las variables estáticas, que se asocian a una clase en lugar de a una
instancia de una clase, son útiles para almacenar y compartir información que se aplica a toda
una clase de objetos. Métodos estáticos Los métodos estáticos, también denominados métodos de clase, son métodos que se declaran
con la palabra clave static. Estos métodos, que se asocian a una clase en lugar de a una
instancia de clase, son útiles para encapsular la funcionalidad que afecta a algo más que el
estado de una instancia individual. Métodos de instancia Los métodos de instancia son métodos que se declaran sin la palabra clave static. Estos
métodos, que se asocian a instancias de una clase en lugar de a la clase como un todo, son
útiles para implementar funcionalidad que afecta a instancias individuales de una clase. Métodos descriptores de acceso Las funciones descriptoras de acceso get y set, también denominadas captadores y definidores,
permiten implementar los principios de programación relacionados con la ocultación de
información y encapsulación a la vez que ofrecen una interfaz de programación fácil de usar
para las clases que se crean. Enumeraciones con clases Las enumeraciones son tipos de datos personalizados que se crean para encapsular un pequeño
conjunto de valores. ActionScript 3.0 no ofrece una capacidad de enumeración específica, a
diferencia de C++, que incluye la palabra clave enum, o Java, con su interfaz Enumeration. ActionScript 3.0 utiliza clases especiales, denominadas clases de activos incorporados, para
representar elementos incorporados. Un activo incorporado es un activo, como un sonido, una
imagen o una fuente, que se incluye en un archivo SWF en tiempo de compilación. Clases de activos incorporados Interfaces Una interfaz es una colección de declaraciones de métodos que permite la comunicación entre
objetos que no están relacionados. Por ejemplo, la API de Flash Player define la interfaz
IEventDispatcher, que contiene declaraciones de métodos que una clase puede utilizar para
controlar objetos de evento. La interfaz IEventDispatcher establece una forma estándar de
pasar objetos de evento entre objetos. Definición de una interfaz La estructura de una definición de interfaz es similar a la de una definición de clase, con la
diferencia de que una interfaz sólo puede contener métodos sin código de método. Las
interfaces no pueden incluir variables ni constantes, pero pueden incluir captadores y
definidores. Para definir una interfaz se utiliza la palabra clave interface. Implementación de una interfaz en una clase Una clase es el único elemento del lenguaje ActionScript 3.0 que puede implementar una
interfaz. Se puede utilizar la palabra clave implements en una declaración de clase para
implementar una o más interfaces. Herencia La herencia es una forma de reutilización de código que permite a los programadores
desarrollar clases nuevas basadas en clases existentes. Las clases existentes se suelen denominar
clases base o superclases, y las clases nuevas se denominan subclases. Una ventaja clave de la
herencia es que permite reutilizar código de una clase base manteniendo intacto el código
existente. Herencia y propiedades de instancia Todas las subclases heredan una propiedad de instancia definida con la palabra clave
function, var o const, con tal de que no se haya declarado la propiedad con el atributo
private en la clase base. Por ejemplo, la clase Event de la API de Flash Player tiene diversas
subclases que heredan propiedades comunes a todos los objetos de evento. Herencia y especificadores de control de acceso Si una propiedad se declara con la palabra clave public, estará visible en cualquier parte del
código. Esto significa que la palabra clave public, a diferencia de las palabras clave private,
protected e internal, no restringe de ningún modo la herencia de propiedades. Sustitución de métodos El método de instancia no se ha declarado con la palabra clave final en la clase base. Si se utiliza la palabra clave final con un método de instancia, indica la intención del programador de evitar que las subclases sustituyan el método.
El método de instancia no se declara con el especificador de control de acceso private de la clase base. Si se marca un método como private en la clase base, no hay que usar la palabra clave override al definir un método con el mismo nombre en la subclase porque el método de la clase base no será visible para la subclase. La sentencia super Al sustituir un método, los programadores generalmente desean añadir funcionalidad al
comportamiento del método de la superclase que van a sustituir, en lugar de sustituir
completamente el comportamiento. Esto requiere un mecanismo que permita a un método de
una subclase llamar a la versión de sí mismo de la superclase. La sentencia super proporciona
este mecanismo, ya que contiene una referencia a la superclase inmediata. Propiedades estáticas no heredadas Las subclases no heredan las propiedades estáticas. Esto significa que no se puede acceder a las
propiedades estáticas a través de una instancia de una subclase. Sólo se puede acceder a una
propiedad estática a través del objeto de clase en el que está definida. Por ejemplo, en el código
siguiente se define una clase base denominada Base y una subclase que amplía Base
denominada Extender. Propiedades estáticas y cadena de ámbitos Aunque las propiedades estáticas no se heredan, están en la cadena de ámbitos de la clase en la
que se definen y de cualquier subclase de dicha clase. Así, se dice que las propiedades estáticas
están dentro del ámbito de la clase en la que se definen y de sus subclases. Esto significa que
una propiedad estática es directamente accesible en el cuerpo de la clase en la que se define y
en cualquier subclase de dicha clase. Temas avanzados Esta sección empieza con una historia abreviada de ActionScript y la programación orientada
a objetos, y continúa con una descripción del modelo de objetos de ActionScript 3.0 y de
cómo permite que la nueva máquina virtual de ActionScript (AVM2) sea considerablemente
más rápida que la de las versiones anteriores de Flash Player, que incluyen la máquina virtual
de ActionScript antigua (AVM1). Historia de la implementación de la programación
orientada a objetos en ActionScript Como el diseño de ActionScript 3.0 se ha basado en las versiones anteriores de ActionScript,
puede resultar útil comprender la evolución del modelo de objetos de ActionScript.
ActionScript empezó siendo un mecanismo sencillo de creación de scripts para las primeras
versiones de la herramienta de edición Flash. Con el tiempo, los programadores empezaron a
crear aplicaciones cada vez más complejas con ActionScript. ActionScript 1.0 ActionScript 1.0 es la versión del lenguaje utilizada en Flash Player 6 y en versiones anteriores.
En esta fase inicial del desarrollo, el modelo de objetos de ActionScript ya se basaba en el
concepto de objeto como tipo de datos básico. Un objeto de ActionScript es un tipo de datos
compuesto con un conjunto de propiedades. Al describir el modelo de objetos, el término
propiedades abarca todo lo que está asociado a un objeto, como las variables, las funciones o los
métodos. ActionScript 2.0 En ActionScript 2.0 se incluyeron palabras clave nuevas, como class, extends, public y
private, que permitían definir clases de una manera familiar para cualquiera que trabaje con
lenguajes basados en clases como Java y C++. Es importante comprender que entre
ActionScript 1.0 y ActionScript 2.0 no hubo cambios en el mecanismo de herencia
subyacente. El objeto de clase de ActionScript 3.0 Un paradigma común de la programación orientada a objetos, que se suele asociar con Java y
C++, utiliza las clases para definir tipos de objetos. Los lenguajes de programación que
adoptan este paradigma también tienden a utilizar clases para crear instancias del tipo de datos
definido por la clase. ActionScript utiliza clases para ambos propósitos, pero sus raíces como
lenguaje basado en prototipos le añaden una característica interesante. El objeto traits Cada clase de objeto de ActionScript tiene una propiedad denominada prototype, que es una
referencia al objeto prototipo de la clase. El objeto prototipo es un legado de las raíces de
ActionScript como lenguaje basado en prototipos El objeto prototipo El objeto traits, que es una novedad en ActionScript 3.0, se implementó para mejorar el
rendimiento. En versiones anteriores de ActionScript, la búsqueda de nombres era un proceso
lento, ya que Flash Player recorría la cadena de prototipos.
Full transcript