linoart 0 Denunciar post Postado Janeiro 9, 2010 Preciso colocar uma foto como background de um site. Como serão 5 imagens escolhidas aleatóriamente preferi fazer uma classe separada para elas. Essas imagens fazem resize de largura e altura. Só que no swf que chama a classe dessas imagens existem objetos no palco, e quando o diminuo a tela no resize esses objetos diminuem, o que não era pra acontecer, pois só as imagens deveriam alterar a largura e altura. Daí fui ver que isso ocorre pq causa da classe dessas imagens, então coloquei as imagens pra carregar na mesma classe desses objetos e os objetos pararam de diminuir. Queria saber pq isso ocorre? Algo me diz que é pq estou usando ADDED_TO_STAGE. E qual a forma de isso não acontecer usando uma classe separada? Abraços, Compartilhar este post Link para o post Compartilhar em outros sites
Foxn 3 Denunciar post Postado Janeiro 9, 2010 Não entendi, se você identificou que o problema é a classe, e você fez a classe não bastaria informar que não quer que a imagem redimensione? Compartilhar este post Link para o post Compartilhar em outros sites
linoart 0 Denunciar post Postado Janeiro 9, 2010 Mas se a imagem pega toda a janela do brownser não precisaria redimensiona-la? Por exemplo, se a janela está diminuida e carrego o site e em seguida aumento a janela a imagem não vai acompanhar o redimensionamento deixando um espaço em branco, não é mesmo? Abraços, Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Janeiro 9, 2010 layout liquido normal + css. Abs Compartilhar este post Link para o post Compartilhar em outros sites
linoart 0 Denunciar post Postado Janeiro 11, 2010 Não sei se expliquei bem. Quero fazer igual a esse site http://lassepedersen.biz/, onde o background faz resize e os objetos permanecem do mesmo tamanho. Só que no meu swf, por eu ter feito uma classe só para o background, tudo estava diminuindo - o background e os objetos. Aqui tá o meu swf http://www.skintec.com.br/clear/swf/ Preciso fazer ele todo em flash, e também dando resize no background senão se a janela estiver pequena e carregar o site o background não acompanhará o aumento da janela. Consegui fazer diminuir os objetos, mas tive que fazer as fotos de background na classe principal, e não em classe separada. Quero entender como fazer em classe separada, por isso a minha dúvida. Essa aqui é a classe do background: public class FotosBackgroundSemMover extends Sprite { private var aFotos:Array; private var loadFoto:Loader; private var tamW:Number; private var tamH:Number; private var tamFotoW:Number; private var tamFotoH:Number; public var fotoNaTela; public function FotosBackgroundSemMover() { addEventListener(Event.ADDED_TO_STAGE, iniciar); } public function iniciar(evt:Event):void { stage.scaleMode = StageScaleMode.NO_BORDER; stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = "TL"; stage.addEventListener(Event.RESIZE, onResize); tamW = stage.stageWidth; tamH = stage.stageHeight; loadFoto = new Loader(); //trace(getChildAt(0)) //trace(menuPrincipal.x) aFotos = ["img1.jpg", "img2.jpg", "img3.jpg", "img4.jpg"]; var m:int = Math.random()*aFotos.length; loadFoto.load(new URLRequest("../img/fundo/"+aFotos[0])); loadFoto.contentLoaderInfo.addEventListener(Event.COMPLETE, fotoCarregada); } public function fotoCarregada(evt:Event):void { loadFoto.width = stage.stageWidth; loadFoto.height = stage.stageHeight; addChild(loadFoto); fotoNaTela = true; naTela = true; } public function set naTela(tela):void { fotoNaTela = tela; } public function get naTela():Boolean { return fotoNaTela } public function onResize(evt:Event=null):void { stage.scaleMode = StageScaleMode.NO_BORDER; var sw:Number = stage.stageWidth; var sh:Number = stage.stageHeight; loadFoto.width = sw; loadFoto.height = sh; } } Abraços, Compartilhar este post Link para o post Compartilhar em outros sites
Foxn 3 Denunciar post Postado Janeiro 12, 2010 Primeira mente, quando fizer uma classe, e resolver pasar a mesma para tirar uma dúvida procure passar o pacote e não só a classe. Agora quanto a sua dúvidaeu removi os comando sque gerenciam o stage e os coloquei na classe Main, ou você pode colocar direto no stge mesmo, depende como você está fazendo. Ficari assim: stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; Preparado o stage, seguimos para a classe: package { import flash.display.Sprite; import flash.events.Event; import flash.display.Loader; import flash.net.URLRequest; public class FotosBackgroundSemMover extends Sprite { private var aFotos:Array; private var loadFoto:Loader; private var tamW:Number; private var tamH:Number; private var tamFotoW:Number; private var tamFotoH:Number; public var fotoNaTela; public function FotosBackgroundSemMover () { addEventListener (Event.ADDED_TO_STAGE, iniciar); } public function iniciar (evt:Event):void { stage.addEventListener (Event.RESIZE, onresize); tamW = stage.stageWidth; tamH = stage.stageHeight; loadFoto = new Loader(); aFotos = ["img1.jpg","img2.jpg","img3.jpg","img4.jpg"]; var m:int = Math.random() * aFotos.length; loadFoto.load (new URLRequest("../img/fundo/"+aFotos[m])); loadFoto.contentLoaderInfo.addEventListener (Event.COMPLETE, fotoCarregada); } public function fotoCarregada (evt:Event):void { loadFoto.width = stage.stageWidth; loadFoto.height = stage.stageHeight; addChild (loadFoto); fotoNaTela = true; naTela = true; } public function set naTela (tela):void { fotoNaTela = tela; } public function get naTela ():Boolean { return fotoNaTela; } public function onresize (evt:Event=null):void { var sw:Number = stage.stageWidth; var sh:Number = stage.stageHeight; loadFoto.width = sw; loadFoto.height = sh; } } } Não me apeguei em detalhes como sua classe deveria funcionar, apenas removi os elementos que certamente podiam estar atrapalhando. Feito isso, criei um objeto com a sua classe, adicionei ao palco, e funcionou como esperado. Claro que se você quiser manter a manipulação do stage pela classe, basta remover o stage.scaleMode = StageScaleMode.NO_BORDER; deste método: public function onresize(evt:Event=null):void { stage.scaleMode = StageScaleMode.NO_BORDER; var sw:Number = stage.stageWidth; var sh:Number = stage.stageHeight; loadFoto.width = sw; loadFoto.height = sh; } Att, Compartilhar este post Link para o post Compartilhar em outros sites
linoart 0 Denunciar post Postado Janeiro 12, 2010 Mesmo assim não estava funcionando. Mas ai comecei mexer e funcionou, mas não sei o que fiz. (stage.align e scaleMode ainda estão em FotosBackgroundSemMover). Valeu, Foxn. Obrigado!! Abraços, Compartilhar este post Link para o post Compartilhar em outros sites