Criação de suas próprias classes

O processo de criar as classes que serão usadas nos projetos pode parecer assustador. Entretanto, a parte mais difícil da criação de uma classe é a tarefa de projetar os métodos, as propriedades e os eventos da classe.

Estratégias para criar uma classe

O tópico de criação orientada a objetos é complexo; existem cargos totalmente dedicados ao estudo acadêmico e à prática profissional dessa disciplina. No entanto, apresentamos algumas sugestões de abordagens que podem ajudá-lo a começar.

  1. Pense na função que as ocorrências dessa classe exercem no aplicativo. Em geral, os objetos cumprem uma destas três funções:

    • Objeto Value: esses objetos servem principalmente como contêineres de dados. Provavelmente, têm várias propriedades e menos métodos (ou às vezes nenhum método). Em geral, são representações de código de itens claramente definidos. Por exemplo, um aplicativo de reprodução de música poderia incluir uma classe Song, que representa uma única canção real, e uma classe Playlist, que representa um grupo conceitual de músicas.

    • Objeto de exibição: são os objetos que realmente aparecem na tela. Entre os exemplos estão elementos da interface do usuário como uma lista suspensa ou exibição de status, elementos gráficos como criaturas em um videogame, e assim por diante.

    • Estrutura do aplicativo: esses objetos exercem uma ampla gama de funções de suporte na lógica ou no processamento executados pelos aplicativos. Por exemplo, você pode fazer um objeto realizar certos cálculos em uma simulação de biologia. Você pode criar um que seja responsável por sincronizar os valores entre o controle de dial e a leitura de volume no aplicativo de reprodução de música. Outro pode administrar as regras em um video game. Ou você pode fazer uma classe para carregar uma imagem salva em um aplicativo de desenho.

  2. Escolha a funcionalidade específica de que a classe precisa. Os diferentes tipos de funcionalidade, em geral, se tornam métodos da classe.

  3. Se a classe for servir como um objeto de valor, decida quais dados as ocorrências incluem. Esses itens são bons candidatos para propriedades.

  4. Como a classe está sendo criada especificamente para seu projeto, o mais importante é fornecer a funcionalidade de que o aplicativo precisa. Tente responder a estas perguntas:

    • Que informações o aplicativo está armazenando, controlando e manipulando? Responder a esta pergunta ajuda-o a identificar os objetos e as propriedades de valor de que você precisa.

    • Que conjuntos de ações o aplicativo realiza? Por exemplo, o que acontece quando o aplicativo é carregado, quando se clica em um botão em particular, quando um filme para de ser reproduzido e assim por diante? Esses itens são bons candidatos para métodos. Eles também podem ser propriedade se as "ações" envolverem a alteração de valores individuais.

    • Para qualquer ação determinada, que informações são necessárias para realizar essa ação? Essas informações se tornam os parâmetros do método.

    • À medida que o aplicativo executa seu trabalho, o que muda na sua classe que outras partes do aplicativo devem saber? Esses itens são bons candidatos para eventos.

  5. Há um objeto atual que seja semelhante ao objeto de que você precisa, com a diferença de que está faltando alguma funcionalidade que você deseja acrescentar? Pense em criar uma subclasse. (A subclasse é uma classe que se baseia na funcionalidade de uma classe já existente, e não na definição de toda sua própria funcionalidade.) Por exemplo, para criar uma classe que seja um objeto visual na tela, use o comportamento de um objeto existente de exibição como base para sua classe. Nesse caso, o objeto de exibição (como MovieClip ou Sprite) seria a classe base, e sua classe estenderia essa classe.

Escrita do código para uma classe

Depois de ter um projeto para sua classe, ou pelo menos alguma ideia de quais informações ele armazena e que ações realiza, a sintaxe real de escrever uma classe é bastante direta.

Veja as etapas mínimas para criar sua própria classe do ActionScript:

  1. Abra um novo documento de texto no seu programa de edição de texto do ActionScript.

  2. Insira uma instrução class para definir o nome da classe. Para acrescentar uma instrução class, insira as palavras public class e depois o nome da classe. Acrescente as chaves de abertura e fechamento para abranger o conteúdo da classe (as definições de método e propriedade). Por exemplo:

    public class MyClass 
    { 
    }

    A palavra public indica que a classe pode ser acessada de qualquer outro código. Para obter alternativas, consulte Atributos de espaço para nomes de controle de acesso.

  3. Digite uma instrução package para indicar o nome do pacote que contém sua classe. A sintaxe é a palavra package, seguida pelo nome completo do pacote, seguido pelas chaves de abertura e fechamento ao redor do bloco de instrução class. Por exemplo, troque o código na etapa anterior para o seguinte:

    package mypackage 
    { 
        public class MyClass 
        { 
        } 
    }
  4. Defina cada propriedade na classe usando a instrução var dentro do corpo da classe. A sintaxe é a mesma usada para declarar qualquer variável (com a adição do modificador public). Por exemplo, a inclusão destas linhas entre as chaves de abertura e fechamento da definição da classe cria propriedades chamadas textProperty, numericProperty e dateProperty:

    public var textProperty:String = "some default value"; 
    public var numericProperty:Number = 17; 
    public var dateProperty:Date;
  5. Defina cada método na classe usando a mesma sintaxe usada para definir uma função. Por exemplo:

    • Para criar um método myMethod(), digite:

      public function myMethod(param1:String, param2:Number):void 
      { 
          // do something with parameters 
      }
    • Para criar um construtor (o método especial que é chamado como parte do processo de criar uma ocorrência de uma classe), crie um método cujo nome corresponda exatamente ao nome da classe:

      public function MyClass() 
      { 
          // do stuff to set initial values for properties 
          // and otherwise set up the object 
          textVariable = "Hello there!"; 
          dateVariable = new Date(2001, 5, 11); 
      }

      Se você não incluir um método constructor em sua classe, o compilador cria automaticamente um construtor vazio em sua classe. (Em outras palavras, um construtor sem parâmetros e sem instruções.)

    Há alguns outros elementos de classe que você pode definir. Esses elementos são mais complexos.

    • Os assessores são um cruzamento especial entre um método e uma propriedade. Durante a escrita do código para definir a classe, você escreve o assessor como um método. Você pode realizar várias ações em vez de apenas ler ou atribuir um valor, que é tudo o que você pode fazer ao definir uma propriedade. Entretanto, na criação de uma ocorrência da classe, você trata o assessor como uma propriedade e use apenas o nome para ler ou atribuir o valor.

    • Os eventos no ActionScript não são definidos usando uma sintaxe específica. Em vez disso, você define os eventos em sua classe usando a funcionalidade da classe EventDispatcher.