Exportação de símbolos da biblioteca para o ActionScript

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

Por padrão, as ocorrências de símbolos de clipe de filme em uma biblioteca de documentos Flash não podem ser criadas dinamicamente (ou seja, usando apenas o ActionScript). Isso porque cada símbolo que é exportado para ser usado no ActionScript aumenta o tamanho do arquivo SWF, e talvez não haja a intenção de usar alguns símbolos no palco. Por isso, para que um símbolo se torne disponível, é necessário especificar que ele seja exportado para o ActionScript.

Para exportar um símbolo para o ActionScript:

  1. Selecione o símbolo no painel Biblioteca e abra a caixa de diálogo Propriedades do símbolo.

  2. Se necessário, ative as Configurações avançadas.

  3. Na seção de ligação, marque a caixa de seleção Exportar para ActionScript.

    Isso ativará os campos Classe e Classe base.

    Por padrão, o campo Classe é preenchido com o nome do símbolo, com os espaços removidos (por exemplo, um símbolo chamado "Tree House" se tornaria "TreeHouse"). Para especificar que o símbolo use uma classe personalizada para seu comportamento, digite o nome completo da classe incluindo seu pacote neste campo. Se pretende criar ocorrências do símbolo no ActionScript, mas não precisa adicionar nenhum comportamento adicional, você pode deixar o nome da classe como está.

    O valor da Classe base assume flash.display.MovieClip como padrão. Se quiser estender a funcionalidade do símbolo para outra classe personalizada, você poderá especificar o nome dessa classe, contanto que ela estenda a classe Sprite (ou MovieClip).

  4. Pressione o botão OK para salvar as alterações.

    Nesta etapa, se o Flash não encontrar um arquivo SWC vinculado ou um arquivo ActionScript externo com uma definição para a classe especificada (por exemplo, caso não seja necessário adicionar comportamentos extras para o símbolo), um aviso é exibido:

    Não foi possível localizar uma definição para esta classe no caminho de classe. Portanto, uma definição será automaticamente gerada no arquivo SWF após a exportação. .

    Desconsidere esse aviso se o símbolo da biblioteca não exigir funcionalidade exclusiva além daquela da classe MovieClip.

Se você não fornecer uma classe para o símbolo, o Flash criará uma para ele equivalente a esta:

package 
{ 
    import flash.display.MovieClip; 
     
    public class ExampleMovieClip extends MovieClip 
    { 
        public function ExampleMovieClip() 
        { 
        } 
    } 
}

Se quiser adicionar outra funcionalidade ActionScript ao símbolo, adicione as propriedades e métodos adequados à estrutura de código abaixo. Por exemplo, suponha que você tenha um símbolo de clipe de filme contendo um círculo com 50 pixels de largura e 50 de altura, e o símbolo seja especificado para ser exportado para o ActionScript com uma classe chamada Circle. O código a seguir, quando colocado em um arquivo Circle.as, estende a classe MovieClip e fornece ao símbolo os métodos adicionais getArea() e getCircumference() :

package  
{ 
    import flash.display.MovieClip; 
     
    public class Circle extends MovieClip 
    { 
        public function Circle() 
        { 
        } 
         
        public function getArea():Number 
        { 
        // The formula is Pi times the radius squared. 
        return Math.PI * Math.pow((width / 2), 2); 
        } 
         
        public function getCircumference():Number 
        { 
        // The formula is Pi times the diameter. 
        return Math.PI * width; 
        } 
    } 
}

O seguinte código, colocado em um quadro-chave no Quadro 1 do documento Flash, criará uma ocorrência do símbolo e a exibirá na tela:

var c:Circle = new Circle(); 
addChild(c); 
trace(c.width); 
trace(c.height); 
trace(c.getArea()); 
trace(c.getCircumference());

Esse código demonstra a instanciação baseada no ActionScript como uma alternativa para arrastar ativos individuais ao Palco. Isso cria um círculo com todas as propriedades de um clipe de filme e com os métodos personalizados definidos na classe Circle. Este exemplo é bem básico; o símbolo da biblioteca pode especificar um número qualquer de propriedades e métodos em sua classe.

A instanciação baseada no ActionScript é muito eficiente, porque permite criar dinamicamente grandes quantidades de ocorrências, um trabalho que seria cansativo se feito manualmente. Ela também é flexível, porque você pode personalizar as propriedades de cada ocorrência na sua criação. Para ter uma ideia dessas duas vantagens, use um loop para criar dinamicamente várias ocorrências de Circle. Com o símbolo e a classe Circle descritos anteriormente na sua biblioteca de documentos Flash, coloque o seguinte código em um quadro-chave do Quadro 1:

import flash.geom.ColorTransform; 
 
var totalCircles:uint = 10; 
var i:uint; 
for (i = 0; i < totalCircles; i++) 
{ 
    // Create a new Circle instance. 
    var c:Circle = new Circle(); 
    // Place the new Circle at an x coordinate that will space the circles 
    // evenly across the Stage. 
    c.x = (stage.stageWidth / totalCircles) * i; 
    // Place the Circle instance at the vertical center of the Stage. 
    c.y = stage.stageHeight / 2; 
    // Change the Circle instance to a random color 
    c.transform.colorTransform = getRandomColor(); 
    // Add the Circle instance to the current timeline. 
    addChild(c); 
} 
 
function getRandomColor():ColorTransform 
{ 
    // Generate random values for the red, green, and blue color channels. 
    var red:Number = (Math.random() * 512) - 255; 
    var green:Number = (Math.random() * 512) - 255; 
    var blue:Number = (Math.random() * 512) - 255; 
     
    // Create and return a ColorTransform object with the random colors. 
    return new ColorTransform(1, 1, 1, 1, red, green, blue, 0); 
}

Isso demonstra como você pode criar e personalizar várias ocorrências de um símbolo com rapidez usando código. Cada ocorrência é posicionada com base na contagem atual dentro do loop e recebe uma cor aleatória definindo sua propriedade transform (que Circle herda ao estender a classe MovieClip).