Ohrlando 0 Denunciar post Postado Julho 14, 2010 Olá, eu criei uma classe, onde são miniaturas de fotos. Preciso colocar uma numeração nelas, entao tentei criar um TextField e add no stage dela. Importei certinho tudo que é necessário, mas não funciona, ele por motivos estranhos não reconhece aqui está o código da classe package { import flash.display.MovieClip; import flash.display.Sprite; import fl.containers.UILoader; import flash.text.*; import flash.text.TextField; import flash.events.Event; import com.greensock.*; import com.greensock.easing.*; import flash.events.MouseEvent; public class Foto extends Sprite { public var idNumber:Number; private var Texto:TextField = new TextField(); private var format:TextFormat = new TextFormat("Arial",12,"0x000000",true,false); Texto.defaultTextFormat = format; private var loader:UILoader; var container:Sprite = new Sprite(); var contorno:Sprite = new Sprite(); public function Foto(source:String, id:uint):void { name = source; idNumber = id; addChild(Texto); Texto.text = idNumber.toString(); drawContorno(); drawLoader(); addEventListener(MouseEvent.MOUSE_OVER,onOver); addEventListener(MouseEvent.MOUSE_OUT,onOut); addEventListener(Event.ENTER_FRAME, onEnter_Frame); scaleThumb(); } function drawContorno():void{ contorno.graphics.lineStyle(2, 0xff66cc, .7); contorno.graphics.lineTo(0, 0); contorno.graphics.lineTo(0, 72); contorno.graphics.lineTo(72, 72); contorno.graphics.lineTo(72, 0); contorno.graphics.lineTo(0, 0); addChild(contorno); contorno.visible = false; } function drawLoader():void { container.graphics.lineStyle(2, 0xff66cc, .7); container.graphics.lineTo(0, 0); container.graphics.lineTo(0, 72); container.graphics.lineTo(72, 72); container.graphics.lineTo(72, 0); container.graphics.lineTo(0, 0); container.visible = false; addChild(container); loader = new UILoader(); loader.scaleContent = true; loader.source = name; loader.mouseEnabled = false; this.loader.x = 1; this.loader.y = 1; loader.width = 70; loader.height = 70; addChild(loader); addChild(Texto); } private function onEnter_Frame(event:Event):void{ if (MovieClip(parent.root).auxObj.name == name){ contorno.visible = true; } else { contorno.visible = false; } } private function onOver(event:MouseEvent):void{ container.visible = true; TweenLite.to (this, .2, {alpha: 1, scaleX:1, scaleY: 1}); } private function onOut(event:MouseEvent):void { TweenLite.to (this, .2, {alpha:.7, scaleX: .95, scaleY: .95, onComplete: hideContainer}); } private function hideContainer(){ container.visible = false; } private function scaleThumb():void { this.scaleX = .95; this.scaleY = .95; this.alpha = .75; } }}erros:Dá dois erros na mesma linha 1120: Access of undefined property Texto. - Texto.defaultTextFormat = format; 1120: Access of undefined property format. - Texto.defaultTextFormat = format; loader é uma imagem. coloquei o addChild(Texto) depois pra ficar na frente. não entendo o porque desse erro. não sei se tem haver, mas será que o flash tem limites de "import"? um certo dia tentei importar um UILoader e simplesmente deu erro no import '-', sendo que estava corretíssimo. Mas não é o caso. Comentei por talvez ser erro no patch do flash, não sei, tô desesperado pra terminar isso abraço! ps, já tentei ao invés de private var, somente var, e também não vai Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Julho 14, 2010 Os erros acontecem pelos seguintes motivos: 1- UILoader é um componente, então tem que ter uma instancia dele na library. 2- O erro do TextFormat é porque ta usado de uma maneira meio errada, segue abaixo: private var legenda:TextField = new TextField(); private var format:TextFormat = new TextFormat(); //o código aqui abaixo coloquei dentro do construtor format.font = "Verdana"; format.color = 0xFFFF00; format.size = 18; legenda.defaultTextFormat = format; Abs Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Julho 14, 2010 Provavelmente algum erro de logica. Ou o texto esta por tras de alguma forma, ou o texto esta de uma cor que nao da pra ve. Abs Compartilhar este post Link para o post Compartilhar em outros sites
Ohrlando 0 Denunciar post Postado Julho 14, 2010 Nossa incrível vocês Deu realmente certo, mas não obtive o resultado esperado ali nas thumbs a direita é onde deveria aparecer os textinhos. a intenção era aparecer um textinho na frente do loader(as miniaturas). Não aparece o texto ou o texto não é visível, não sei. Fiz um teste pra ver se realmente havia um TextFild e sim tinha, inclusive o ponteiro do mouse muda, o text dele é exatamente o que deveria ser (testei com um trace no MOUSE_OVER, mas não entendo porque não consigo visualizá-lo O que pode ser isso? abraço Compartilhar este post Link para o post Compartilhar em outros sites
Ohrlando 0 Denunciar post Postado Julho 15, 2010 Olá tudo bem? Então, muito estranho isso os textos são pretos e as imagens coloridas... mas agora estou tentando fazer diferente, ao inves de criar uma classe só por código, estou criando um objeto na library e chamando. Aí já coloco um Text em uma camada acima de tudO! (: vou tentar fazer aqui, muito obrigado mesmo, qualquer coisa de errado eu volto tá? rsrs abraço! vlw² OMG Não acredito, eu tentei fazer, tava perfeitinho, mas não aparece o bendito texto, procurei na net e achei isso: /* Mascara não funciona com texto dinâmico ou texto de entrada, que por padrão utilizam Device Fonts (fontes de dsipositivo). Você teria que embutir as fontes no filme. Ou então você está utilizando umas das três fontes _sans _typeWrite ou _serif. Essas fontes não são convertidas em imagens quando o swf é gerado e máscara só funciona com imagens. Fábio Duarte */ http://www.pontoflash.com.br/truques_con.php?autor=40&tema=3&post=488 e realmente é meu caso, porque as thumbs estão em uma máscara, e agora que eu faço? =O ps, não utilizo nenhuma das fontes citadas no post do cara Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Julho 16, 2010 Embed as fontes. Abs Compartilhar este post Link para o post Compartilhar em outros sites