Olá pessoal uma ação bastante útil para quem desenvolve flash para Web é o tratamento do redimensionamento de tela de um arquivo flash. Para um site isso significa você reposicionar os elementos na tela ou fazer outro tipo de tratamento. Nesse Post vou trabalhar somente com o FlashDevelop.
A abra o FlashDevelop
Crie um novo projeto e em seguida uma nova classe.
package classes {//Importamos as classes que vamos utilizarimport flash.events.Event;
import flash.display.Sprite;
import flash.display.StageScaleMode;
/**
* ...
* @author Fellyph Cintra http://www.fellyph.com.br/blog/
*/// lembrando que nossa classe extends de spritepublicclass Resize extends Sprite{publicfunction Resize(){stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = "TL";
stage.addEventListener(Event.RESIZE, onResize);
/*
* O StageScaleMode classe fornece valores para a propriedade stage.scaleMode.
* ela fica responsável pela escala dos objetos no palco quando o stage for redimencionado
* no nosso exemplo foi passado no_scale ou seja os objetos ficarão com tamanho fixo no stage
* a segunda propriedade é o align que recebe "TL" = TOP_LEFT resumindo o canto superior esquerdo
* sera o ponto de orientação do stage.
* Por Fim adicionamos o Evento RESIZE , toda vez que houver um redimencionamento no stage
* a função onRezise vai ser chamada.
*
*/}publicfunctiononResize(e:Event){trace('Faz Alvo quando redimencionar a tela')trace("largura do stage Exibida : " + stage.stageWidth);
trace("largura real do stage : " + stage.width);
/*
* Nos Dois últimos traces é trabalhado duas propriedades do
* stage relacionadas a largura, a primeira traz a largura do stage exibida na tela
* a segunda traz o tramanho real do stage o tamanha que ele
* foi criado independente da exibição.
* Isso também é impregado para altura
*/
trage("altura do stage Exibida :" + stage.stageHeight);
trace("altura real do estage : " + stage.height);
}}}
se estiver usando o Flash o código ficará da seguinte forma :
1
2
3
4
5
6
7
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = "TL";
stage.addEventListener(Event.RESIZE, onResize);
public function onResize(e:Event) {
trace('Faz Alvo quando redimencionar a tela')
}
Ok agora vamos trabalhar com um objeto no palco vamos criar um quadrado e definir seu posicionamento.
package classes {import flash.display.Shape;
import flash.events.Event;
import flash.display.Sprite;
import flash.display.StageScaleMode;
/**
* ...
* @author Fellyph Cintra http://www.fellyph.com.br/blog/
*/publicclass Resize2 extends Sprite{publicvar forma:Shape;
publicfunction Resize2(){// agora vamos criar um shape no palco
forma = new Shape();
forma.graphics.beginFill(0x990000);
forma.graphics.drawRect(0, 0, 150, 150);
forma.graphics.endFill();
addChild(forma);
// vamos posicionar o shape no centro do pal
forma.x = (stage.stageWidth/2) - (forma.width/2);
forma.y = (stage.stageHeight/2) - (forma.height/2);
//fazemos o tratamento no stagestage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = "TL";
stage.addEventListener(Event.RESIZE, onResize);
/*
* usamos o mesmo código para posicionar no centro
* dentro do método onResize, agora toda vez que o stage
* for redimensionado o shape forma irá para o centro do stage
*/}publicfunctiononResize(e:Event){
forma.x = (stage.stageWidth/2) - (forma.width/2);
forma.y = (stage.stageHeight/2) - (forma.height/2);
}}}
package classes {import flash.display.Shape;
import flash.events.Event;
import flash.display.Sprite;
import flash.display.StageScaleMode;
/**
* ...
* @author Fellyph Cintra http://www.fellyph.com.br/blog/
*/publicclass Resize3 extends Sprite{publicvar forma:Shape;
publicfunction Resize3(){// agora vamos criar um shape no palco// com uma diferença o shape tem a mesma lagura do palco
forma = new Shape();
forma.graphics.beginFill(0x990000);
forma.graphics.drawRect(0, 0,stage.stageWidth, 50);
forma.graphics.endFill();
addChild(forma);
// vamos posicionar o shape no limite inferior do palco// ele vai funcionar como uma especie de rodapé
forma.x = 0;
forma.y = stage.stageHeight - forma.height;
//fazemos o tratamento no stagestage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = "TL";
stage.addEventListener(Event.RESIZE, onResize);
/*
*
*/}publicfunctiononResize(e:Event){//repetimos o posicionamento com um diferença mudamos também a largura do shape
forma.x = 0;
forma.y = stage.stageHeight - forma.height;
forma.width = stage.stageWidth;
}}}
E o resultado é :
Por fim vamos trabalhar com quatro shapes ao mesmo tempo :
Como usar isso no Flash CS3 ?
Bem legals Fellyph, utilissimo isso no flash!
Valeu Marcos!
Obrigado cara, bacanas mesmo. Ajudo muito vlw
Muito bom mesmo Fellyph!!
Estou aprendendo agora a mexer com classes e esse tutorial ja foi de grande ajuda.
Prezado. Vou poderia me ajudar no redimensionamento de sites em HTML?
Grato