/ / ActionScript 2 Maneira correta de definir a função no MovieClip - actionscript, actionscript-2, movieclip

ActionScript 2 Maneira correta de definir a função no MovieClip - actionscript, actionscript-2, movieclip

Eu estou tentando escrever uma função em um MovieClip e chamá-lo do clipe raiz. O que funciona bem no ActionScript 3 não parece estar funcionando corretamente no ActionScript 2.

Quadro 1 do _root MovieClip:

var newMovieClip:MovieClip = _root.attachMovie("Notification", id, 0);
newMovieClip.SetNotificationText("Test text");

Quadro 1 do Notification MovieClip:

function SetNotificationText(inputText : String){
notificationText.text = inputText;
}

O resultado é que o MovieClip é criado, mas o texto não é alterado.

Estou fazendo isso errado?

Respostas:

2 para resposta № 1

Para adicionar funções a um MovieClip no AS2, você precisa usar um destes métodos:

  1. Adicione o método ao protótipo do MovieClip:

    MovieClip.prototype.SetNotificationText = function(inputText:String):Void
    {
    if(this["notificationText"] !== undefined)
    {
    // If we"re going to use the prototype, at least do some checks
    // to make sure the caller MovieClip has the text field we expect.
    this.notificationText.text = inputText;
    }
    }
    
    newMovieClip.SetNotificationText("Test text");
    
  2. Faça o MovieClip e o argumento da função:

    function SetNotificationText(mc:MovieClip, inputText:String):Void
    {
    mc.notificationText.text = inputText;
    }
    
    SetNotificationText(newMovieClip, "Test text");
    
  3. Adicione o método diretamente ao recém-criado MovieClip:

    var newMovieClip:MovieClip = _root.attachMovie("Notification", id, 0);
    
    newMovieClip.SetNotificationText(inputText:String):Void
    {
    notificationText.text = inputText;
    }
    
    newMovieClip.SetNotificationText("Test text");
    

A opção 2 é melhor no geral - é a mais limpa eevita a sobrecarga de criar uma nova função para cada novo MovieClip. Também evita mexer com o protótipo, que na melhor das hipóteses deve ser usado para adicionar métodos genéricos, como um removeItem() método em Array.