Ir para conteúdo

Arquivado

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

lendadomato

[Resolvido] Mascara em imagem carregada localmente

Recommended Posts

Olá amigos,

 

tenho uma imagem carregada localmente e essa imagem precisa

conter algumas mascaras que ao clicar no botão para o frame 2

ela desaparece, preciso que ela acompanhe as mascaras até uns 10

quadros e a cada quadro tem uma mascara diferente, abaixo o codigo

de carregamento da imagem:

import flash.events.MouseEvent;
import flash.net.FileReference;
import flash.net.FileFilter;
import flash.utils.ByteArray;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.display.MovieClip;
import fl.controls.ProgressBarMode;


var fileRef:FileReference;


//botão Configurar  manipular a navegação
browseButton.buttonMode=true;
browseButton.mouseChildren=false;
browseButton.addEventListener(MouseEvent.CLICK, onBrowseButtonClicked);
progressBar.visible=false;





// Essa função é chamada quando o botão Navegar é clicado.
function onBrowseButtonClicked(event:MouseEvent):void
{
trace("onBrowse");
fileRef=new FileReference();
fileRef.addEventListener(Event.SELECT, onFileSelected);
var swfTypeFilter:FileFilter = new FileFilter("SWF/JPG/PNG Files","*.jpeg; *.jpg;*.gif;*.png");
var allTypeFilter:FileFilter = new FileFilter("All Files (*.*)","*.*");
fileRef.browse([swfTypeFilter, allTypeFilter]);


}

// Essa função é chamado depois que o usuário selecionou um arquivo na janela do navegador de arquivos.
function onFileSelected(event:Event):void
{
trace("Arquivo Selecionado");
// Este callback será chamado quando o arquivo é carregado e pronto para uso
fileRef.addEventListener(Event.COMPLETE, onFileLoaded);


// Este callback será chamado se houver erro durante o upload
fileRef.addEventListener(IOErrorEvent.IO_ERROR, onFileLoadError);


// Callback opcional para acompanhar o progresso de upload
fileRef.addEventListener(ProgressEvent.PROGRESS, onProgress);


// Informa o FileReference para carregar o arquivo
fileRef.load(); 

// Mostrar barra de progresso
progressBar.visible=true;
progressBar.mode=ProgressBarMode.MANUAL;
progressBar.minimum=0;
progressBar.maximum=100;

browseButton.visible=false;

}

// Essa função é chamada para nos informar sobre os progressos do upload
function onProgress(event:ProgressEvent):void
{
var percentLoaded:Number=event.bytesLoaded/event.bytesTotal*100;
trace("Carregado: "+percentLoaded+"%");
progressBar.setProgress(percentLoaded, 100);
}

// Essa função é chamada depois que o arquivo tenha sido carregado.
function onFileLoaded(event:Event):void
{
var fileReference:FileReference=event.target as FileReference;

// Estes passos indicados a seguir são para passar os dados como DisplayObject 
// Estas etapas são específicas para este exemplo.
var data:ByteArray=fileReference["data"];
trace("Arquivo carregado");

fileRef.removeEventListener(Event.COMPLETE, onFileLoaded);
fileRef.removeEventListener(IOErrorEvent.IO_ERROR, onFileLoadError);
fileRef.removeEventListener(ProgressEvent.PROGRESS, onProgress);	
browseButton.visible=true;

var movieClipLoader:Loader=new Loader();
movieClipLoader.loadBytes(data);
movieClipLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onMovieClipLoaderComplete);
}

function onFileLoadError(event:Event):void
{
// Ocultar barra de progresso
progressBar.visible=true;
browseButton.visible=true;
fileRef.removeEventListener(Event.COMPLETE, onFileLoaded);
fileRef.removeEventListener(IOErrorEvent.IO_ERROR, onFileLoadError);
fileRef.removeEventListener(ProgressEvent.PROGRESS, onProgress);

trace("Arquivo deu erro.");
}   

// Esta função abaixo é específica para esse exemplo.
// Ele faz o processamento necessário para exibir o swf / png / jpeg arquivo que acabamos carregado.
function onMovieClipLoaderComplete(event:Event):void
{
// Ocultar barra de progresso
progressBar.visible=false;
var imagem:DisplayObject=event.target.content;
var loader:Loader=event.target.loader as Loader;

// Ajustar para estágio

   trace("Largura da Imagem Carregada.width = "+imagem.width);
trace("Altura da Imagem Carregada = "+imagem.height);
imagem.scaleX=loader.width/imagem.width;
imagem.scaleY=loader.height/imagem.height;
trace("Posição da Imagem.scaleX = "+imagem.scaleX);
trace("Posição da Imagem.scaleY = "+imagem.scaleY);
trace("Largura do Palco = "+this.stage.width);

mc_imagem.addChild(loader);

}

 

aqui um dos botões:

btn_1.addEventListener(MouseEvent.CLICK, irQuadro2);
function irQuadro2 (e:MouseEvent):void {
       gotoAndStop(2);

} 

 

 

não sei nem por onde começar, desde já agradeço a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom pessoal,

 

testei o sistema com o carregamento da imagem via php

fazendo request da url e mascarando o mc q recebe a imagem,

assim q eu clico no botão para alterar a máscara da imagem funciona

direitinho, mas eu preciso mesmo é da imagem carregada localmente com

o sistema q tenho.

 

poxa, to quase usando o sistema de carregamento via php, vejam o link

abaixo do projeto quase finalizado, só to dependendo disso para finalizar.

 

Projeto teste

 

vejam q tenho apenas um modelo e gostaria de mudar

para os outros sem ter q upar as imagens novamente.

 

me ajuda gente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal,

consegui resolver na cagada!

 

o que eu fiz foi o seguinte:

deixei o desenho da mascara no 1º frame e criei um Motion Tween

que foi convertido em um simbolo, aí eu pensei, vou editar esse simbolo

colocar um stop no 1º frame e converter os 10 frames em keyframes e no último frame que é o 10º

vou mudar o desenho dele, no lugar coloquei o desenho de uma bolinha para

testar a alteração, nada mudou aí foi q pensei em instanciar esse simbolo

como "mascara" e colocar essa instancia no gotoAndStop no bendito botão,

testei e a coisa funcionou perfeitamente:

 

vejam como ficou para quem possa precisar:

btn_1.addEventListener(MouseEvent.CLICK, irQuadro10);
function irQuadro10 (e:MouseEvent):void {
       mascara.gotoAndStop(10);

} 

 

sei que para voltar aos outros frames devo instanciar

todos os outros botões para ativar a mascara que preciso.

 

obrigado pela ajuda de todos que leram e tentaram

de alguma forma resolver a questão!

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.