Server-Side ActionScript no Flash Media Server

Poucos sabem mas o Flash Media Server(versão Interactive) possui uma linguagem de servidor chamada Server-Side ActionScript ou ActionScript Communications(extensão .asc). O que permite recurso poderosos em seus aplicativos multimídia muito além de um simples streaming.
Server-Side ActionScript é o nome que Adobe deu para o JavaScript 1.5, o Flash Media Server possui uma engine de JavaScript para compilar e executar os scripts.
O Server-Side ActionScript é parecido mas não idêntico ao ActionScript 1.0, mas ambos são baseado no ECMAScript(ECMA-262) edition 3 language specification. O Server-Side ActionScript roda sob a engine SpiderMonkey da Mozilla que consta no Flash Media Server enquanto que o ActionScript 1.0 roda sob o AVM1(ActionScript Virtual Machine 1) no Adobe Flash Player. O SpiderMonkey implementa o totalmente o ECMAScript enquanto que a AVM1 do Flash Player não. A grande diferença entre os dois é que o Server-Side ActionScript é case-sensitive.
Portanto para quem já tem conhecimento de JavaScript, pode reaproveita-lo para usar no Flash Media Server, é possível utilizar a maioria dos recursos e ainda contar com os recursos exclusivos do Flash Media Server.

Vamos os primeiros passos para utilizar o Server-Side ActionScript no Flash Media Server. Uma maneira de testar seus scripts é usando o fms_console localizado no caminho:

INSTALATION FOLDER\Adobe\Flash Media Server 4.5\webroot\swfs\fms_adminConsole.swf

Se você tiver o Adobe Flash Professional, pode abrir esse arquivo diretamente apenas dando dois cliques, caso contrario, abra pelo navegador. Ao ser aberto, devemos ter uma tela como essa:

fms_console_tela1

Tela inicial do fms_adminConsole.swf


Basta entrar com o login e senha que você determinou no momento em que estava instalando o Flash Media Server que deveremos entrar para a seguinte tela:
fms_console_tela2

Tela pos-login


Esse será seu melhor amigo ao desenvolver aplicativos com Flash/Flex e Flash Media Server. Por padrão, o Flash Media Server lê o seguinte diretorio:

INSTALATION FOLDER\Adobe\Flash Media Server 4.5\applications

Esse caminho pode ser configurado modificando a linha “VHOST.APPSDIR” no seguinte arquivo:

INSTALATION FOLDER\Adobe\Flash Media Server 4.5\conf\fms.ini

Criaremos um diretorio chamado “teste”, e dentro dele um arquivo chamando “main.asc” com o seguinte conteúdo:

javascript

  1. // ActionScript Communications Document
  2. trace("init app...");

Agora no console, carregaremos nossa aplicação criando uma nova instância dela selecionando no combobox:

Na tela seguinte, basta dar um “enter”.

Deveremos ter o resultado do nosso trace na caixa de texto como na imagem:

fms_console_tela5

Resultado do trace


Uma recomendação que faço é que você limpe a tela antes de executar novamente o script main.asc, basta clicar no botão Clear Log(1) e depois em Reload Application(2):

Alguns exemplos do que pode ser usado com o Server-Side ActionScript

Constantes

javascript

  1. // ActionScript Communications Document
  2. trace("init app...");
  3. const PI = 3.14;
  4. trace(PI);

Expressões Regulares

javascript

  1. // ActionScript Communications Document
  2. trace("init app...");
  3. myRe = /d(b+)d/g;
  4. myArray = myRe.exec("cdbbdbsbz");
  5. trace(myArray);

Funções

javascript

  1. // ActionScript Communications Document
  2. trace("init app...");
  3. function teste()
  4. {
  5.     return "to na funcao o/";  
  6. }
  7. trace(teste());
  8.  
  9. function factorial(n)
  10. {
  11.    if ((n == 0) || (n == 1))
  12.       return 1;
  13.    else
  14.    {
  15.       var result = (n * factorial(n-1) );
  16.       return result;
  17.    }
  18. }
  19. trace(factorial(5));

Objetos

javascript

  1. // ActionScript Communications Document
  2. trace("init app...");
  3. var obj = {id:"teste",data:2,status:"ONLINE",type:"admin"}
  4. trace(obj);
  5. for(s in obj)
  6. {
  7.     trace(s +" - "+obj[s]);
  8. }

Array

javascript

  1. // ActionScript Communications Document
  2. trace("init app...");
  3. var arr = ["leo", "bruno", "wendel", "andre","juba"];
  4. trace(arr);
  5. function removeValueFromArray(arr, value)
  6. {
  7.     var len = arr.length;
  8.    
  9.     for(var i = len; i > -1; i--)
  10.     {
  11.         if(arr[i] === value)
  12.         {
  13.             arr.splice(i, 1);
  14.         }
  15.     }
  16.     return arr;
  17. }
  18. trace(removeValueFromArray(arr,"pam"));

Aviso importante, use esses recursos SOMENTE em ambiente de desenvolvimento. Em ambiente de produção, você derrubará todo mundo que estiver conectado à sua aplicação. 😛

Referência:
Documentação do Adobe Flash Media Server

ActionScript 3.0, Adobe, Flash, Flash Media Server , ,

7 comments


  1. Macello Bravin

    Olá Leonardo, gostaria de um contato seu sobre a compra de uns scripts que tenho muito interesse.
    Aguardo seu retorno grato.

  2. to disponibilizando meus exemplos aos poucos free na pagina de downloads, mas se quiser fazer uma doacao, aceito 😉

  3. Macello Bravin

    Ola, claro não tenho nenhum problema em fazer a doação rs, mas eu preciso de um player de video, e um de audio ao vivo, eu vi que no seu artigo do stream com flex ou flash tem uns porem com arquivi no servidor, mas minha necessidade é de um script para stream ao vivo.
    Ficaria muito grato e com certeza iria clica no botao doar rsrs..
    Obrigado por responder.

  4. Show de bola a matéria, vc conhece algum curso bom de Action Script?

  5. Muito bom!!! Adorei as dicas! Ansioso pelo próximo artigo!

  6. Muito bom artigo!

  7. A tecnologia é impressionante e o mundo gira em uma velocidade espantosa, por mais que a gente busque o conhecimento, sempre tem coisas para aprender!
    Obrigado pelo Post, valeu mesmo!

Leave a Reply