Freelife 2 Denunciar post Postado Fevereiro 11, 2009 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
Freelife 2 Denunciar post Postado Fevereiro 11, 2009 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
Eder Fortunato 15 Denunciar post Postado Fevereiro 12, 2009 dá uma olhada nesse guia de migração do AS2 para AS3 []´s Compartilhar este post Link para o post Compartilhar em outros sites
Freelife 2 Denunciar post Postado Fevereiro 12, 2009 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
Matheus Brito 12 Denunciar post Postado Fevereiro 12, 2009 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
Freelife 2 Denunciar post Postado Fevereiro 12, 2009 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
Freelife 2 Denunciar post Postado Fevereiro 12, 2009 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
Freelife 2 Denunciar post Postado Fevereiro 13, 2009 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
Freelife 2 Denunciar post Postado Fevereiro 14, 2009 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
Freelife 2 Denunciar post Postado Fevereiro 14, 2009 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