Criar modal MovieClip TopMost

di Flash. Ilustrar uma técnica para criar símbolos (MovieClip) componentes modal a ser utilizado de forma semelhante ao Alert e Window do Flash. O objetivo é mostrar um MovieClip acima de todas as outras, desabilitando - bem - o acesso à base e qualquer objeto presente / outro componente. Para ser honesto eu ter conseguido que, ao fazer um pouco de "engenharia reversa do código da Adobe, que é em claro! Na verdade, eu resisti ;)

O artefizio que é usado para desativar qualquer interface Apresentamos a seguir o nosso MovieClip, é criar um MovieClip transparente assumir toda a área do palco. a false . Neste MovieClip, que será praticamente não visível encaixar um método "void" sobre o evento onRelease , tendo o cuidado de definir o useHandCursor para false .

Primeiro de tudo, criar um filme com qualquer interface no palco principal:

Interface

e un bottone usato aprire il nostro MovieClip modale: il nostro popUp personalizzato. Este consiste em um TextField , um TextInput e um botão usado para abrir o nosso modal MovieClip pop-up por conta própria.

Quando você vai adicionar o nosso símbolo usando attachMovie() é o que veremos:

MovieClip modal

Eu deixei em vermelho ( alpha=10 ) o fantasma que paira MovieClip abaixo da interface, de modo a ser visto. Nosso símbolo pode ser feito de qualquer maneira, basta configurar nas propriedades de um identificador (por exemplo, moviemodal) e 2.0 classe para MovieClipModal:

Configurações ícone

Aqui MovieClipModal a classe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/ *
**
** Arquivo: MovieClipModal.as
** Autor: Giovambattista Fazioli (@ g.fazioli undolog.com)
** Web: http://www.undolog.com
** E-mail: g (ponto) Fazioli (at) undolog (ponto) (com)
** Criado: 08/11/2007 23:57
** Modificado em: 08/11/2007 23:57
**
**
* /
managers . DepthManager ; . importação mx gestores DepthManager.;
/ /
MovieClip { MovieClipModal classe estende MovieClip {
/ /
__release : String = "1.0" ; var privada __release: string = "1.0";
/ /
__modal_mc : MovieClip ; private var __modal_mc: MovieClip ;
/ /
__movieWidth : Number = 0 ; __movieWidth var privado: Número = 0;
__movieHeight : Number = 0 ; __movieHeight var privado: Número = 0;
__left : Number = 0 ; __left var privado: Número = 0;
__right : Number = 0 ; var privada __right: Número = 0;
__top : Number = 0 ; __top var privado: Número = 0;
__bottom : Number = 0 ; __bottom var privado: Número = 0;
/ /
MovieClipModal function () {
scaleMode = "noscale" ; Estágios scaleMode = "noScale".;
addListener ( this ) ; Estágios addListener (this).;
/ /
onLoad = _onLoad;
onUnload = _onUnload;
/ /
width ; __movieWidth = Stage . largura;
height ; __movieHeight = Stage . altura;
}
/ *
** _onLoad () - Enrole onLoad MovieClip
* /
_onLoad ( ) { _onLoad private function () {
/ Key.addListener / (this);
/ /
"__modal_mc" , DepthManager . kTopmost ) ; . __modal_mc = _root createEmptyMovieClip ("__modal_mc" DepthManager kTopmost.);
( ) ; __modal_mc clear ().;
( 0xff0000 , 100 ) ; . __modal_mc beginFill (0xFF0000, 100);
( 0 , 0 ) ; . __modal_mc moveTo (0, 0);
( 100 , 0 ) ; . __modal_mc lineTo (100, 0);
( 100 , 100 ) ; . __modal_mc lineTo (100, 100);
( 0 , 100 ) ; . __modal_mc lineTo (0, 100);
( ) ; __modal_mc endFill ().;
/ /
this ) ; . __modal_mc setDepthBelow (this);
; __modal_mc _alpha = 10.;
/ / _global.style.modalTransparency;
= __modal_mc . useHandCursor = false ; . __modal_mc tabEnabled = __modal_mc useHandCursor = false.;
/ /
( ) { } ; __modal_mc onRelease = function () {}.;
/ /
onResize ();
}
/ *
** _onUnload () - Enrole onUnload MovieClip
* /
_onUnload ( ) { _onUnload private function () {
; . __modal_mc removeMovieClip ();
}
/ *
** OnKeyDown - chave Enrole
* /
onKeyDown ( ) { onKeyDown private function () {
Key . getCode ( ) == Key . TAB ) { if (Key. getCode () == TAB chave.) {
/ / Selection.setFocus ();
}
}
/************************************************* *******************************************
** OnResize () evento
************************************************** ******************************************/
onResize ( ) { onResize private function () {
Number = Math . round ( Stage . width ) ; var sw: Número = Math round (. Stage largura.);
Number = Math . round ( Stage . height ) ; var sh: Número = Math round (. Stage altura.);
Number = Math . round ( this . __movieWidth ) ; ow var: Número = Math . round (this. __movieWidth);
Number = Math . round ( this . __movieHeight ) ; Oh var: Número = Math round (this. __movieHeight);.
/ /
Math . floor ( ( ( sw - ow ) / 2 ) ) ; __modal_mc _x = -. Math chão (((sw - ow) / 2)).;
Math . floor ( ( ( sh - oh ) / 2 ) ) ; __modal_mc _y = -. Math floor (((sh - h) / 2)).;
. width ; __modal_mc _width =. Stage largura.;
. height ; __modal_mc _height =. Stage altura.;
}
}

Esta classe é apenas um exemplo e pode ser expandido e melhorado. Mas como ele funciona muito bem. (righe 43 e 52). De particular interesse é o uso de DepthManager para a colocação no fundo do nosso modal MovieClip, graças à constante kTopmost (linhas 43 e 52).

Note também a presença (comentário nesta versão) para as linhas 41 e 70 de um manipulador de adicionais para o teclado. Nosso pop-up, de fato, contém um botão que elimina uma inesperada possível neste sistema. A adição do MovieClip fantasma (linhas 43-57) e amarrado artefizio evento onRelease() não impede que certos movimentos, como pressionar a tecla Tab do teclado. Em alguns casos, portanto, pode ser necessário para interceptar as tarefas de teclado antes de desviar em outros lugares, como a restauração de fogo para um controle interno ao nosso modal MovieClip.

One Response to "Criando modal MovieClip TopMost"

  1. 9 de dezembro de 2007 upnews.it :

    undolog  »Blog Archive » Criar MovieClip modal TopMost ...

    Ilustrar uma técnica para criar símbolos (MovieClip) Modo de usar componentes similares e Flash Alert Window. € ™ s objetivo é mostrar um MovieClip acima de todas as outras, desabilitando - bem - € ™ s para acesso a área subjacente ... € ™

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