Ir para conteúdo

POWERED BY:

Arquivado

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

Freelife

[Resolvido] De AS2 para AS3

Recommended Posts

Estou transformando um editor de texto que eu tinha aqui de AS2 para AS3.

Já consegui fazer várias coisas, mas nessa função que é a principal não consigo fazer ela em AS3.

Será que alguém pode ajudar?

 

A função:

 

function Format(arg, tag) {
	//see swapper mc
	ini = Selection.getBeginIndex();
	end = Selection.getEndIndex();
	var myFormat = new TextFormat();
	switch (tag) {
		case 'bold' : myFormat.bold = true;	break;
		case 'italic' : myFormat.italic = true; break;
		case 'under' : myFormat.underline = true; break;
		case 'aleft' : myFormat.align = 'left'; break;
		case 'acenter' : myFormat.align = 'center'; break;
		case 'aright' : myFormat.align = 'right'; break;
		case 'ajustify' : myFormat.align = 'justify'; break;
		case 'unformat' : 
			myFormat.bold = myFormat.underline=myFormat.italic=myFormat.bullet=myFormat.blockIndent=false;
			myFormat.Color = "0x000000";
			myFormat.align = "left";
			break;
		default : //trace("no case option found");
	}
	arg.setTextFormat(ini, end, myFormat);
}

Abraços e vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez para facilitar se alguém puder dizer como é que se usa as funções:

Selection.getBeginIndex();
Selection.getEndIndex();
já ajude, pois, depois disso posso criar funções separadas, embora fosse bem mais prático criar uma só.

 

Preciso de ajuda.

 

Vlw

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw pela resposta Eder, acabei de axar e tava vindo postar aqui...

 

Não sei quanto a vocês, mas o help do CS4 não tá me ajudando em quase nada, então instalei o CS3 novamente numa máquina virtual para ter acesso ao help, pelo menos não fico dependendo da helpOn...

 

O que achei no CS3 foi o guia de migração, lá achei isso aqui...

 

de: getBeginIndex();
passou a ser: selectionBeginIndex();

Esse parte consegui fazer identificar...

 

sobre a parte da função ainda não consegui achar nada, eu vou tentar criar uma função para cada botão.

Acho que vai ser melhor para entender.

Mas se alguém tiver uma dica de como fazer essa outra função funcionar em AS3 eu agradeço.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw pela resposta Eder, acabei de axar e tava vindo postar aqui...

 

Não sei quanto a vocês, mas o help do CS4 não tá me ajudando em quase nada, então instalei o CS3 novamente numa máquina virtual para ter acesso ao help, pelo menos não fico dependendo da helpOn...

 

O que achei no CS3 foi o guia de migração, lá achei isso aqui...

 

de: getBeginIndex();
passou a ser: selectionBeginIndex();

Esse parte consegui fazer identificar...

 

sobre a parte da função ainda não consegui achar nada, eu vou tentar criar uma função para cada botão.

Acho que vai ser melhor para entender.

Mas se alguém tiver uma dica de como fazer essa outra função funcionar em AS3 eu agradeço.

 

Abraços

Não entendi o que ta faltando, o swtich eh igual, não muda, e o que falta são so declarações de variaveis e funcoes que em as 3.0 deve se seguir a regra mesmo(graças a Deus)

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá...

 

fiz assim:

 

//criando a função que armazena a posição.
function selectText(event:MouseEvent):void
{
	ini = texto_txt.selectionBeginIndex;
	end = texto_txt.selectionEndIndex;
	trace(ini + " - " + end);
}
//adicionando um evento.
addEventListener(MouseEvent.MOUSE_UP, selectText);

function Format(arg, tag) {
	//see swapper mc
	var myFormat = new TextFormat();
	switch (tag) {
		case 'bold' : myFormat.bold = true;	break;
		case 'italic' : myFormat.italic = true; break;
		case 'under' : myFormat.underline = true; break;
		case 'aleft' : myFormat.align = 'left'; break;
		case 'acenter' : myFormat.align = 'center'; break;
		case 'aright' : myFormat.align = 'right'; break;
		case 'ajustify' : myFormat.align = 'justify'; break;
		case 'unformat' :
			myFormat.bold = myFormat.underline=myFormat.italic=myFormat.bullet=myFormat.blockIndent=false;
			myFormat.Color = "0x000000";
			myFormat.align = "left";
			break;
		default : //trace("no case option found");
	}
	arg.setTextFormat(ini, end, myFormat);
}

no botão:

//teste do botão negrito.
function bold(bold_evt:Object){
	Format(texto_txt, "bold");
}
bold_btn.addEventListener("click", bold);

e ele me mostra:

 

TypeError: Error #1034: Falha de coerção de tipo: não é possível converter 4 em flash.text.TextFormat.
	at editorTexto_fla::MainTimeline/Format()
	at editorTexto_fla::MainTimeline/bold()

eu sei que o erro é pq eu declarei a variável "ini" e "end" como número, mas se eu apenas as declaro:

var ini = texto_txt.selectionBeginIndex;

var end = texto_txt.selectionEndIndex;

 

tbém dá erro...

como é que posso declarar essas variáveis sem especificar o tipo dela?

 

Vlw...

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera...

 

tentei simplificar a função do botão usando isso:

 

//teste do botão negrito.
function negrito(negrito_evt:Object){
	var format:TextFormat = new TextFormat('bold');
	texto_txt.setTextFormat(format, ini, end);
}
bold_btn.addEventListener("click", negrito);

mas não dá certo, a única coisa que acontece é que a letra fica menor, o que nem deveria acontecer.

 

Alguém?

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Noite galera...

 

consegui fazer a função funcionar o erro estava aqui:

arg.setTextFormat(ini, end, myFormat);
tem que ser a variável de formatação antes, assim:

arg.setTextFormat(myFormat, ini, end);

Agora quero fazer uma outra parte que é, comparar o texto selecionado com a formatação que a pessoa que que fique.

Ex:

Se o texto não está em negrito, transforme em negrito

Se o texto estiver em negrito, retire o negrito.

 

Tentei assim:

 

//teste do botão negrito.
function negrito(negrito_evt:Object){
		var atual:Object = texto_txt.getTextFormat(ini, end);
	if(atual != 'bold'){
		Format(texto_txt, 'bold');
	}
	else{
		Format(texto_txt, 'unformat');
	}
}
bold_btn.addEventListener("click", negrito);

Mas a parte do "getTextFormat" não está funcionando.

 

O que fazer para dar certo?

 

Vlw

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera... preciso de ajuda...

 

Bom, getTextFormat retorna um objeto certo?! Tentei armazenar isso em uma variável e depois converter para string usando

.toString(); mas não dá certo, quando dou um trace ele mostra: [object TextFormat]...

 

Como é que eu faço para resolver isso? Obter o formato atual de uma parte do texto...

 

var formatAtual = texto_txt.getTextFormat(ini, end);
	atual = formatAtual.toString();//atual é uma var string.
	trace(atual);
	if(atual != 'bold'){
		Format(texto_txt, 'bold');
	}
	else{
		Format(texto_txt, 'unformat');
	}

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

noite galera...

 

consegui...

 

fiz assim:

var formatAtual = texto_txt.getTextFormat(ini, end).bold;

 

daí ele retorna true ou false.

 

Abraços

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.