Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Brenda Medeiros

Cubo interativo em 3D

Recommended Posts

Olá.

 

Estou fazendo um trabalho para escola e preciso criar um cubo em 3D que funcione como um dado, só que ao invés de usar números vou usar palavras. Quero que esse cubo, ao ser clicado, gire e pare numa palavra aleatoriamente. E dependendo da palavra em que o cubo parar, uma imagem apareça ao lado dele.

 

Não sei se isso possível. Eu uso o Flash Professional CS6, mas meus conhecimentos ainda são limitados. Procurei em todos os sites possíveis e não encontrei tutoriais que pudessem me ajudar.

 

Se alguém entendeu a ideia e sabe como fazer, por favor, me ajude!

 

Agradeço desde já. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

A maneira mais simples seria criar uma animação do cubo girando, e depois de algum tempo o cubo para numa palavra aleatória (nesse caso seriam 6 palavras possíveis, certo?). Depois você cria uma condição para cada palavra.

 

//Crie um movieclip chamado "cubo"
//No frame 1 escreva no código: stop();
//Faça a animação do cubo girando a partir do frame 2
//No primeiro frame, coloque no cubo um texto e dê a instância dele como "texto", nele onde aparecerá a palavra.

//Crie um movieclip chamado "foto"
//No frame 1 do movieclip "foto" coloque um quadro em branco
//Nos outros frames coloque outras imagens de acordo com as palavras


cubo.addEventListener(MouseEvent.CLICK, girar);
//Chama a função "girar" quando você clica no cubo

var girando:Boolean = false //Diz se o cubo está girando

function girar(event:MouseEvent):void
{
if (!girando)
//Impede que a pessoa clique no cubo enquanto ele estiver girando
//O ponto de esclamação antes da variável quer dizer que ela é FALSA, "!girando" é a mesma coisa de "girando == false"
    {
        cubo.gotoAndPlay(2);
        girando = true; //O cubo está girando agora
        girando = true //O cubo está girando agora.
        //Chama a animação que você deve fazer no cubo, que no caso começa no frame 2
        //No frame 1 escreva "stop();" para a animação não começar antes que você clique no cubo
        if (cubo.currentFrame == 1)
        {
        gerar(); //Chama a função "gerar()"
        }
    }
}

function gerar():void
{
    var numero:Number = Math.round(Math.random() * 5 + 1);
    //A função "Math.round" arredonda o número que está entre parênteses
    //A função "Math.random" gera um número aleatório de 0 a 1
    //Temos de multiplicar o número aleatório 5 para poder gerar um número maior que 1
    //Se o resultado zero não for bem vindo, você pode somar o resultado com 1
    var palavra:String = "";
    switch (numero)  //Cria uma série de condições para a variável entre parênteses
    {
        case 1: //Caso o número gerado seja 1
        palavra = "Abacaxi";
        break; //Finaliza a condição
        case 2:
        palavra = "Cachorro";
        break;
        case 3:
        palavra = "Ônibus";
        break;
        case 4:
        palavra = "Mesa";
        break;
        case 5:
        palavra = "Árvore";
        break;
        case 6:
        palavra = "Torre";
        break;
        //Essas palavras são apenas exemplos, você pode substituí-las
    }
    foto.gotoAndStop(numero + 1)
    //Faz que a foto vá para o frame do numero sorteado somado com 1
    //Temos que somar com 1, pois o frame 1 não será nenhuma foto
    cubo.texto.text = palavra //Muda a palavra
    girando = false //O cubo não está mais girando
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.