PEDRO CLAUDIO (50 pts)

RODRIGO AMARAL (56 pts)

EDUARDO CARREGA (150 pts)

ALEXANDRE PORTO (1281 pts)

RICARDO TEIXEIRA (40 pts)

MAURO ROCHA TAVARES (40 pts)

EDUARDO WALMOTT (226 pts)

PANDOGO (82 pts)

RICARDO TAKAHASHI (180 pts)

DANIELA PIRES (86 pts)

RICARDO FIGUEIRA (33 pts)

IRAPUAN MARTINEZ (45 pts)
Treinamento PontoFlash de Flash e ActionScript

Quero que numa conta (divisão) apareçam, no resultado, somente 2 casas decimais.

Como faço para sortear (random) uma imagem de fundo a cada vez que o filme é carregado?

É possível fazer um upload de um arquivo através do flash?

Como calcular a raiz quadrada de um número?

Como fazer um duplicateMovieclip em um movieclip quando solto em uma determinada área?

Dica sobre o uso de cenas.

Muitas vezes carrego um arquivo externo com LoadVariables e ele não funciona.

Dicas sobre a inegração Flash e XML usando arrays (matrizes).

Não estou conseguindo fazer o preenchimento gradiente no Flash5

Como criar movieclips dinamicamente com uma escala e um alpha no mouseOver?

Alguém poderia me explicar o funcionamento do comando duplicatemovie?

Quero fazer um movieclip seguir o movimento de um outro na vertical.

Integração ASP com Flash em um formulário com um combobox.

Estou tentando fazer uma inclusão de um cadastro no db.
Load Múltiplos.

Botão estilo Apple, feito no Flash.

Flash MX 2004 Updater

Transparência no Flash.

Máscara arrastável no Flash 5.

Imagens transparentes usando PhotoShop, Fireworks e Flash.

Botão avançar e recuar.

Objeto XML - xml viewer

Load Movie no FlashMX (swf, jpg e mp3).

Jogo dos 7 erros.

Ação Include.

Objeto array.
Lente de aumento

Sashacircle 4

Loja Virtual

Intromar

Dots2a

F5scrolltext

Cursor

Cromatograma

Hidden menu

Relógio analógico

Rolltext com mask

Cursor customizado
HOME | TRUQUES E DICAS
Como fazer um nextFrame e prevFrame com o teclado? Dicas do uso de Listeners (ouvintes).
por Jonas Galvez


Gostaria de fazer uma apresentação estilo power point, mas como faço para controlar a mudança de página (no caso de frame) com as teclas ENTER para passar para a próxima "página" e a tecla SPACE para voltar a "página" anterior.


stop();
this.onEnterFrame = function() {
    if (Key.isDown(Key.ENTER)) {
        nextFrame();
    }
    if (Key.isDown(Key.SPACE)) {
        prevFrame();
    }
};

No ambiente de trabalho do Flash haverá problemas com esse código, pelo uso da tecla ENTER, mas no SWF vai rodar blz

-------------------------------
OUTRA RESPOSTA
-------------------------------

Essa é uma boa solução para o Flsh5, mas no FlashMX, utilizando o onEnterFrame para verificar isso você vai estar gastando processamento desnecessário. Você poderá obter o mesmo resultado, sem gastar o processador, utilizando um ouvinte, por exemplo:

_root.onKeyDown = function(){
    if ( Key.isDown( Key.ENTER ) )
        nextFrame();
    else if ( Key.isDown( Key.SPACE ) )
        prevFrame();
}

Key.addListener( _root );

-------------------------------
PERGUNTA
-------------------------------

Onde aplicamos este script?
Você pode me explicar um pouco mais sobre esse Listeners?

-------------------------------
OUTRA RESPOSTA
-------------------------------

O primeiro código acima funciona legal sim, mas o que acontece é que foi definido um loop onEnterFrame, isso quer dizer que, na velocidade do frame rate, todo o código lá dentro vai ser executado, mesmo quando você não precisar dele. Com os listeners (ou ouvintes), o código só vai ser executado quando alguma coisa acontecer, por exemplo:

var obj = {};

obj.onKeyDown = function(){
    trace( "aqui" );
    if ( Key.isDown( Key.CONTROL ) ) trace( "A tecla Ctrl foi pressionada" );
}

Observe o código acima, eu criei um objeto simples, e utilizei o evento onKeyDown para executar uma determinada ação, mas essa ação só vai ser executada se for falado para a classe Key "ouvir" o objeto criado:

var obj = {};

obj.onKeyDown = function(){
    trace( "aqui" );
    if ( Key.isDown( Key.CONTROL ) ) trace( "A tecla Ctrl foi pressionada" );
}

Key.addListener( obj ); //Fala para a classe Key ficar ouvindo o objeto obj

Com o código acima, o código só será executado quando alguma tecla for pressionada.
Agora observe o codigo abaixo utilizando o evento onEnterFrame:

_root.onEnterFrame = function(){
    trace( "aqui" );
    if ( Key.isDown( Key.CONTROL ) ) trace( "A tecla Ctrl foi pressionada" );
}

Você vai perceber que vai ficar exibindo na tela "aqui" e quando pressionar a tecla Ctrl vai aparecer a mensagem, mas esse é um loop infinito, e vai utilizar muito o processador, mesmo quando nenhuma tecla é pressionada.

Mas não são só os eventos do teclado que você consegue "ouvir", entre outros, pode-se "ouvir" também os eventos do mouse, por exemplo:

var obj = {};

obj.onMouseDown = function(){
    trace( "O botão do mouse foi pressionado" );
}

Mouse.addListener( obj );

Você vai encontrar mais algumas informações sobre os ouvintes no site da casa, em tutorial / toolBox / addListeners.

--------------
outra resposta
--------------

Para Flash MX, eu desenvolvi uma solução própria:

Key.onKeyDown = function() {
    for(var _code, i = this.keys.length; i--;) {
        if(Key.isDown(_code = this.keys[i])) {
            this.broadcastMessage("onKey" + _code, _code);
        };
    };
};
Key.addKeyListeners = function() {
    var a = arguments; if(!this.keys) this.keys = [];
    for(var i = a.length; i--; this.keys[a[i]] = a[i]);
};
Key.addListener(Key);

this["onKey" + Key.ENTER] = function() {
    _root.nextFrame();
};
this["onKey" + Key.SPACE] = function() {
    _root.prevFrame();
};
Key.addKeyListeners(Key.ENTER, Key.SPACE);
Key.addListener(this);

Para Flash 5, seria algo como o seguinte:

onClipEvent(keyDown) { // dentro de um movieclip
    if(Key.isDown(Key.ENTER)) _parent.nextFrame();
    else if(Key.isDown(Key.SPACE)) _parent.prevFrame();
}

Espero que ajude.

Jonas Galvez, João Neto e Alê Porto

1 comentário


Comentário de Diego Venâncio
| 10/1/2013 - 11:29 |


Muito bom o tutorial. Estou com o seguinte problema. A entrada de todas as teclas são reconhecidas exceto a do ENTER... O que pode está acontecendo ? stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);function keyDownHandler(event : KeyboardEvent):void{if (event.keyCode == Keyboard.ENTER) { trace("Funcionando"); }}