Redimensionável filmes Flash: Act II

Retornando ao posto de Classe StageExt: filmes em Flash redimensionáveis ​​aqui é um ainda mais fácil de obter o mesmo efeito, apenas se a biblioteca para o nosso filme é pelo menos um componente Flash!

Criar um símbolo, um quadrado vermelho 100 × 100 e colocá-lo em estágios chamando resizeWindow. Entrar na biblioteca, não no palco, qualquer componente, como um TextInput, e insira o seguinte código no primeiro frame do filme.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
managers . SystemManager ; . importação mx gestores SystemManager.;
/ /
scaleMode = "noscale" Estágios scaleMode. = "noScale"
/ /
/ SystemManager.init / ();
( "resize" , resizeWindow ) ; SystemManager addEventListener ("resize", resizeWindow).;
/ /
= function ( Void ) : Void { . resizeWindow redimensionar = function (Void): Void {
Object = SystemManager . screen ; var s: Objeto . = SystemManager tela;
_width = s . width ; . _width este = largura s.;
_height = s . height ; este _height = s. altura.;
_x = Math . round ( s . x ) ; . _x = este Math round (x s.).;
_y = Math . round ( s . y ) ; . _y = este Math round (s. y).;
}
( ) ; resizeWindow resize ().;

A linha 6 (SystemManager.init ();) pode ser omitida.

Nota interessante é a presença de duas variáveis ​​globais que indicam o tamanho do filme original. Estes são reforçadas pela presença do componente na biblioteca! O StageExt classe, de fato, exigido no momento da sua criação, a passagem do tamanho do filme (levar um pedaço de código):

1
2
3
4
5
6
7
8
9
10
11
] [...]
w : Number , h : Number ) { StageExt função (w: Número , h: Número ) {
"StageExt::constructor" ) ; trace ("StageExt:: construtor");
/ /
__movieWidth = w;
__movieHeight = h;
/ /
addListener ( this ) ; Estágios addListener (this).;
}

] [...]

che forniscono rispettivamente la larghezza e l'altezza del MovieClip principale. Esta etapa pode ser evitado usando _global.origWidth e _global.origHeight que fornecem a largura ea altura do MovieClip principal. O código, portanto, pode ser reescrita como:

1
2
3
4
5
6
7
8
9
10
] [...]
w : Number , h : Number ) { StageExt função (w: Número , h: Número ) {
"StageExt::constructor" ) ; trace ("StageExt:: construtor");
/ /
. __movieWidth = _global origWidth;
. __movieHeight = _global origHeight;
/ /
addListener ( this ) ; Estágios addListener (this).;
}
] [...]

e _global.origHeight . Ou se você preferir, pode rever todo o método onResize() , e referem-se diretamente para _global.origWidth e _global.origHeight . No entanto, para a completude, essas duas variáveis ​​globais são definidas no arquivo sob a árvore UIObjectExtensions.as mx.core.ext . Eles são definidos simplesmente tomando o tamanho do palco de arranque, a saber:

1
2
3
4
5
6
7
8
9
10
11
12
] [...]

/ / O leitor redimensiona e centros de estágio. Precisamos saber o que os nossos originais
/ / Tamanho Estágio é para saber como nós, onde centrado. Que o FMX notas
/ / Parece Para authoring jogador relatar incorretamente o tamanho.
_global . _origWidth == undefined ) if (_global. _origWidth == undefined)
{
. width ; _global origWidth =. Stage largura.;
. height ; _global origHeight =. Stage altura.;
}

] [...]

Tudo isto é obviamente um caso especial e não pode ser estendida como um caso geral. No entanto, é interessante notar este tipo de terrenos.

One Response to "resizable Filmes Flash: Act II"

  1. 08 de novembro de 2007 Blog Unidade Video »Filmes resizable Flash: Act II:

    [...] Daniel Langendorf: [...]

Deixe um comentário

XHTML PERMIT TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CÓDIGO DE INSERÇÃO:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL