1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: Pela 0:30 desta Sexta-feira (9 de Dezembro, 23:30 de Quinta-feira nos Açores) o Fórum e restantes sites da ZWAME vão estar offline para manutenção durante cerca de 1h30.
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

Actionscript 3.0

Discussão em 'Web Development' iniciada por LuisPitbull, 13 de Outubro de 2007. (Respostas: 11; Visualizações: 3607)

  1. LuisPitbull

    LuisPitbull Power Member

    Boas a todos!

    Gostava de saber se existe por aqui alguem entendedor de AS3 para que me possa dar uma ajuda em várias duvidas minhas.

    Tenho algumas luzes de AS2 e na verdade não estou a entender a forma de trabalho do AS3. Estou farto de ler artigos, tutoriais, movies, etc...e nada me é conclusivo.

    Uns fazem de uma maneira, outros de outra e torna-se complicado saber o que é essencial e o que não é.

    OU MAIS IMPORTANTE!!
    Será que vale a pena avançar já para o ACTIONCRIPT 3 ou acham que devo mergulhar a sério no ACTIONSCRIPT 2?

    Se alguem me pudes ajudar podia adicionar ao msn
    [email protected]

    Cumprimentos a todos!!
     
    Última edição: 13 de Outubro de 2007
  2. LuisPitbull

    LuisPitbull Power Member

    Tá decidido!! Vou para o ActionScript 3.0

    Conforme for avançando vou tentar colocar ou responder a algumas duvidas básicas de AS3.

    Para já posso começar por dizer que encontrei uma class muito boa para AS3, visto que o ZigoEngine e o FuseEngine ainda não estão preparados para o AS3.

    A class pode ser encontrada aqui:
    http://blog.greensock.com/category/tweening/

    Além dos tweens convencionais tem também uma outra class para manipular filtros como blur, cor, DropShadow, Glow e Belevel.

    O que tem a mais que os outros?? Permite fazer sequencias de tweens no mesmo movieClip de uma forma muito simples, o que no AS2 não éra assim muito facil (apesar de não impossivel).

    Para já é o que tenho...

    Abraços!!
     
  3. LuisPitbull

    LuisPitbull Power Member

    AS3 Tween's

    Estou a desenvolver um site todo em AS3.

    Para já o que reparei é que estou a usar varias classes de Tweens para fazer as animações que quero.

    Assim uso o:
    TweenFilterLite para aplicar filtros bitmap como blur, drop shadow, etc e dar-lhes alguma animação...
    O Tweener para movimentos de objectos ou instancias.

    Ambos são muito faceis de usar.
     
  4. LuisPitbull

    LuisPitbull Power Member

    AS3 :: Alpha num TextField

    Não é facil aplicar a propriedade "alpha" numa caixa de texto...para isso é necessário incluir (embed) a font que queremos utilizar.

    INCLUIR UMA FONT NA LIBRARIA:
    1. Botão do lado direito do rato e escolher "New Font..."
    2. Escolher a fonte e dar-lhe um nome
    --- Essa fonte fica com um icon "A" na nossa libraria
    Vamos disponibilizala para uso no AS
    3. Botlao do lado direito do rato por cima do "A" da libraria e escolher "Linkage..."
    4. Seleccionar "Export for ActionScript" e dar um nome na class (no exemplo dei "font1")
    5. Confirmar com "OK" e temos a nossa font incluida na libraria e pronta para ser chamada por ActionScript!!

    Agora podemos utilizar a nossa fonte incluida na libraria para criar as caixas de texto e aplicar o efeito alpha.
    Para isso escrevi uma função (pode ser utilizada numa class) que coloca facilmente no stage uma caixa de texto com um texto qualquer, num tamanho qualquer e com uma cor qualquer.

    Código:
    function txtToStage(nome,texto,xx,yy,cor,size,opac,pos):void {
     var myFont:Font = new font1();
     var txtFormat:TextFormat = new TextFormat();
     txtFormat.font = myFont.fontName;
     txtFormat.size = size;
     nome.autoSize = TextFieldAutoSize.LEFT;
     nome.embedFonts = true;
     nome.antiAliasType = AntiAliasType.ADVANCED;
     nome.defaultTextFormat = txtFormat;
     nome.text = texto;
     if (xx=="centro") {
      nome.x = stage.stageWidth/2-nome.width/2;
     } else {
      nome.x = xx;
     }
     nome.y = yy;
     nome.alpha=opac;
     nome.textColor=cor;
     addChildAt(nome,pos);
    }
    
    function txtToStage(nome,texto,xx,yy,cor,size,opac,pos):void

    nome = Nome da caixa de texto que queremos criar
    texto = Texto que queremos incluir
    xx = Posição X no stage
    yy = Posição Y no stage
    cor = Cor (Ex: 0x00FF00)
    size = Tamanho da font (10)
    opac = Alpha (de 0 a 1)
    pos = Posição no stage (ordem de apresentação das instancias)

    EX: txtToStage(nome1,"Meu texto","centro",stage.stageHeight/2,0x003366,10,1,2);

    Se repararem, no lugar do argumento "xx" está o valor "centro" que foi definido na funçãi que iria centrar horizontalmente ao Stage. Tive necessidade de escrever assim pois o tamanho da caixa de texto depende do texto que enviamos, logo não podemos definir logo à partida qual vai ser o seu comprimento.

    stage.stageHeight/2 = Alinha verticalmente com o stage
    0x003366 = cor do texto
    10 = Tamanho do texto
    1 = Opacodade (alpha)
    2 = 3ª instancia do site (Sendo 0 para o backGround, 1 para o logotipo)

    Os entendidos sintam-se à vontade para modificar o código desde que para melhorar ou evoluir...acredito que pode ser feito de outras formas mas esta foi a que eu encontrei.

    Fazer um fadeIn a um texto:

    txtToStage(nome1,"Meu FadeIn","centro",stage.stageHeight/2,0x003366,10,0,0);
    Tweener.addTween(nome1, {y:stage.stageHeight/2+25, alpha:1, time:0.8, transition:"easeOutCirc", delay:1.5});


    ATENÇÃO: Tweener.addTween e a class que eu uso para fazer os Tweens em AS3 e não vem por defeito no Flash CS9!!

    Espero ter ajudado!!
     
  5. cula_ru

    cula_ru Power Member

    .wysiwyg { background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; background-color: #1e1e1e; background-image: none; color: #ffffff; font-family: Verdana, Arial, Arial; font-style: normal; font-variant: normal; font-weight: 400; font-size: 10pt; line-height: normal } p { margin: 0px; }

    fixe vai adicionando as tuas descubertas.*qq*dia*viro-me*para*o flash...
     
  6. LuisPitbull

    LuisPitbull Power Member

    Load simples de um ficheiro externo

    Para fazer o carregamento de um ficheiro externo como uma imagem ou mesmo um outro ficheiro SWF para dentro do nosso SWF actual, o código básico é este:

    Código:
    var movieLoad:Loader = new Loader();
    movieLoad.load(new URLRequest("movie1.swf"));
     
    var loadProgress_txt:TextField = new TextField();
     
    movieLoad.contentLoaderInfo.addEventListener(Event.OPEN,mostraPreloader);
    movieLoad.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,mostraProgresso);
    movieLoad.contentLoaderInfo.addEventListener(Event.COMPLETE,mostraMovieLoad);
     
    function mostraPreloader(evt:Event):void {
     addChild(loadProgress_txt);
    }
     
    function mostraProgresso(evt:ProgressEvent):void {
     loadProgress_txt.text = "Carregados:"+evt.bytesLoaded+" de:"+evt.bytesTotal;
    }
     
    function mostraMovieLoad(evt:Event):void {
     addChild(movieLoad);
    }
    var movieLoad:Loader = new Loader();
    movieLoad foi o nome que dei a variavel do container onde vai ser guardado o nosso load. Este nome como devem calcular, pode ser um nome à vossa escolha que identifique as necessidades do vosso código.

    movieLoad.load(new URLRequest("movie1.swf"));
    Vai indicar qual o ficheiro que é para ser carregado e vai ser colocado no "container" movieLoad.

    movieLoad.contentLoaderInfo.addEventListener(Event.OPEN,mostraPreloader);
    Quando o "container" movieLoad é aberto, é executada a função "mostraPreloader"
    Código:
    function mostraPreloader(evt:Event):void {
     addChild(loadProgress_txt);
    }
    movieLoad.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,mostraProgresso);
    Quando existe progresso no "conatiner" movieLoad, executa a função "mostraProgresso"
    Código:
    function mostraProgresso(evt:ProgressEvent):void {
     loadProgress_txt.text = "Carregados:"+evt.bytesLoaded+" de:"+evt.bytesTotal;
    }
    De notar que esta função é um evento (evt) de "ProgressEvent" como é indicado no addEventListener que o chama.

    movieLoad.contentLoaderInfo.addEventListener(Event.COMPLETE,mostraMovieLoad);
    Quando o "container" movieLoad é completo, executa a função "mostraMovieLoad"
    Código:
    function mostraMovieLoad(evt:Event):void {
     addChild(movieLoad);
    }
    Esta função, coloca no stage actual o container "movieLoad" que é o ficheiro que foi carregado pelo URLRequest - movieLoad.load(new URLRequest("movie1.swf"));
    Podemos ainda posiciona-lo com as propriedades normais da class addChild como as coordenadas X, Y podendo ser aplicado desta forma:
    Código:
    function mostraMovieLoad(evt:Event):void {
     addChild(movieLoad);
    movieLoad.x = 100;
    movieLoad.y = 100;
    }
    Onde está "movie1.swf" pode ser modificado a nosso interesse onde podemos fazer o carregamento de imagens, xml files, swf's, etc...
     
    Última edição: 25 de Outubro de 2007
  7. msdevweb

    msdevweb Power Member

    como estas a ver, fizeste bem a escolha... a grande diferença entre o as2 e o 3 é o tipo de programaçao, o as3 é exclusivamente orietado a objectos, tendo as sua "funcoes" divididas por "packages". a grande vantagem de evoluçao do as2 para o 3 é a rapidez e fiabilidade execuçao, em alguns casos 200% superiores ao as2. bem como controlar directamente todos os "events" dos respectivos objectos.

    Existem "boatos" que parece que estao ja confirmados como "verdades" (adobe max chicago) que o quake foi "parcialmente" "clonado" para as3 dado o potencial do mesmo (AS3).
    http://www.airtightinteractive.com/news/?p=93
    e : http://www.peterelst.com/blog/2007/10/03/adobe-max-chicago-sneak-peeks/

    :)

    Boa escolha!
     
  8. bogos

    bogos Power Member

    Apesar de ser uma linguagem orientada a objectos não faz de si uma boa escolha se a programação não seguir boas práticas. Código 'spaguetti' em AS3 é o que não falta ai na net.
    Quanto a rapidez é sem dúvida bem mais rápido (muitas vezes bem superior a 200%) mas convém continuar atento a como se programa pois mesmo o AVM sendo muito mais potente, não é 'Deus todo Poderoso' logo não convém descuidar-se.

    Quanto ao Quake clonado, este não foi clonado, foi criado uma ferramenta que converte código fonte C++ (sincrono) em código AS3 (modo assincrono). Basicamente este programa poderia converter a maior parte do código actual de C++ para AS3 que em seguida é compilado para um SWF e correr perfeitamente dentro do Flash Player... Atenção que nunca foi dito que todo o código fonte seria 'convertível' para AS3.
     
  9. msdevweb

    msdevweb Power Member

    qual é a linguagem de programaçao que é uma boa escolha para nao se pretender seguir boas pràticas?? Nenhuma... é como todas as liguagens de programaçao... :)

    Mau código espalhado pela net existe muito... e o as3 nao é excepção, principalmente porque ainda está pouco explorado e divulgado a nivel da sua "apredizagem".

    Por isso que usei as ""

    :)

    Nao foi o que eu disse. :)

    cumps.
     
  10. Pretender

    Pretender Power Member

    Já se sabe mais coisas dessas ferramentas?
    Tenho que começar a olhar para o AS3... :P
     
  11. bogos

    bogos Power Member

    Essas ferramentas foram pequenos proof of concepts mostrados no MAX. Não se sabe se serão alguma vez um produto final.
     
  12. LuisPitbull

    LuisPitbull Power Member

    Depois de algum temo parado, voltei a pegar no AS3.

    Como li neste post, é verdade que o AS3 é uma POO e de facto os exemplos que coloquei mais acima são tudo menos programação orientada a objectoa, no entanto, podemos criar as nossas proprias classes baseadas nesses exemplos.

    Logo que vá descobrindo mais alguma coisa vou postando!!

    Estou a montar uma class para ler em stream arquivos MP3 que disponibiliza variaveis para mostrar o nome da musica, autor, tamanho total do ficheiro, tamanho total carregado, tempo total da musica, tempo já tocado, possibilidade de reproduzir, pausar ou parar.

    Utilização:
    Possibilidade de colocar num site em flash (ou não) um simples leitor de MP3.
    O facto de retornar as informações como o nome da musica, autor, etc dá a possibilidade de serem colocadas onde e como nos apetecer.
    A variavel tamanho total do ficheiro e tamanho total carregado dá a possibilidade de fazer uma barra de preload que informa o utilizador quando da musica já carregou.
    A variavem tempo total da musica e tempo já tocado vai dar a possibilidade de apresentar ao utilizador a informação do tempo da musica.

    As utilizações são muitas...depois é só usar a imaginação.
     
    Última edição: 20 de Janeiro de 2008

Partilhar esta Página