per capire quando il nostro MovieClip è disegnato effettivamente sulla stage: Como temos visto repetidamente, no construtor de uma classe que estende MovieClip pode ser necessário adicionar o evento ADDED_TO_STAGE para entender quando o nosso MovieClip é desenhado no palco:
Artigos com a tag 'MovieClip'
Muito curto truque: ADDED_TO_STAGE
Actionscript 3.0: MovieClip MovieClip mais
Apenas um Desenvolvedor Flash / Actionscript está se preparando para escrever uma função semelhante a um tooltip, confrontos imediatamente com o problema da propagação de eventos entre MovieClip sobrepostas. De facto, se um MovieClip (B) é sobreposta a uma MovieClip (A), que respondem, por exemplo, para um evento MouseEvent.Mouse_OVER , passando com o rato no MovieClip (B) maior do que qualquer caso será interceptado pelo MovieClip (A):

Flash Actionscript concurso: ferramenta erase
Afirmo-o agora: você não ganha nada! Para além do orgulho - se alguma - ter resolvido o problema.
QUEST - APLICAÇÃO
Como criar uma ferramenta para apagar, apagar, limpar, uma "parte" dos gráficos desenhados com a API em Actionscript 3.0?
, espongono la proprietà graphics , un puntatore ad un altro oggetto che “serve” tutte le funzioni grafiche di disegno runtime. Com Actionscript 3.0 Alguns objetos visuais, tais como MovieClip ou Shape , exibindo as propriedades graphics , um ponteiro para outro objeto que "serve" todos os recursos gráficos de tempo de execução de desenhos. Por exemplo, você pode desenvolver um aplicativo de desenho simples. , in modo semplice e rapido. Este objeto graphics permite desenhar qualquer coisa, por exemplo, sobre um objeto Shape , de forma simples e rápida. O problema é que se uma coisa for desenhada pode limpar tudo, mas não uma única parte.
Desenhe uma linha é fácil:
1 2 3 4 5 6 |
Desenhado algo que você pode limpar tudo com o simples chamada para clear() :
1 | . clear ( ) ; myShape gráficos limpar ()..; |
Mas se eu quiser "apagar" apenas um ponto? Ou a partir das coordenadas 50,50-100,100?
Pesquisando na Internet descobri vários exemplos de aplicações de "design" e, de fato, a ferramenta não oferece nenhum apoio ou "delete".
Você tem alguma solução?
ActionScript 3.0, todos com o novo operador
. Novamente no "uniforme", como aconteceu com os eventos (ver o novo evento manipulação Flash CS3 e Flash CS3: O tratamento novo evento ), um dos muitos recursos novos em ActionScript 3.0 é o desaparecimento de todos os ad hoc para os métodos de criação de objetos específicos, tais como: createEmptyMovieClip() ou o famoso attachMovie() . Com Actionscript 3.0 o operador new é suficiente para realizar todo o edifício operações. Um novo MovieClip, por exemplo, é criado (runtime) com o seguinte código:
1 2 |
Mas vamos lá! Se eu tenho um símbolo na biblioteca e como eu vou se eu quiser adicionar runtime attachMovie() se foi? A solução não é muito diferente do que aconteceu no ActionScript 2.0. Primeiro você precisa ir para a biblioteca, selecione o símbolo e abra a janela de propriedades. Em seguida, marque a caixa de Exportação para o encadeamento ActionScript - como aconteceu no Flash 8. Uma biblioteca de símbolos como uma classe base tem sempre flash.display.MovieClip , mas isso não nos interessa muito. O interessante, no entanto, é a classe parâmetro que é definido por padrão (quando você marque a opção Exportar para ActionScript) com o nome do símbolo. O que é importante enfatizar é que este é um novo caminho no Flash CS3 (e ActionScript 3.0). O símbolo a ser exportado deve ter uma referência de classe. A curiosidade é que não são forçados a criar a nossa própria força para a classe (se estendia da flash.display.MovieClip ), embora pudéssemos fazê-lo.
10 razões para atualizar para o Adobe Flash CS3
Para alguns desenvolvedores só precisam saber que há uma nova versão de seu pacote de desenvolvimento preferida para correr e comprar o upgrade. Outros, e com razão, manter uma mais calma e "fingir" para saber a real recuperação na nova versão antes de mudar seus hábitos. No caso do Adobe Flash CS3 não é muito de esperar, dadas as muitas mudanças que sofreram a partir do pacote quando a Macromedia foi adquirida pela Adobe.
Aqui, então, 10 razões simples, mas importante, que, na minha opinião pessoal, o suficiente para convencê-lo a atualizar para o Adobe Flash CS3 . Eu, naturalmente, apenas as características que me impressionaram pessoalmente, este não pretende ser uma lista exaustiva de todas as muitas mudanças introduzidas com a suíte CS3, apenas uma mosca para antecipar algumas características do CS3.
1. Instalação
A instalação é bom e rápido, em comparação às versões anteriores. Ele inclui, entre outras coisas, com todos os produtos da Adobe (Dreamweaver CS3, Photoshop CS3 Extended, etc ...), que torna a instalação / remoção e atualizar um prazer real.
2. Compatibilidade com versões anteriores
Uma questão muitas vezes esquecido, mas sempre tidos em conta na história do Flash: A capacidade de gerenciar as versões anteriores do produto. No Flash CS3 tem todas as ferramentas de migração que para manipular as versões anteriores de nossos filmes. Nós encontramos essa possibilidade na depuração (depuração de um separado Actionscript 2.0 e Actionscript 3,0) está no processo de realização do filme. Aplicações imediatamente escrever em Flash Actionscript 3.0 pode ser contraproducente em determinados contextos. Se o seu site de destino tem um alto tráfego você pode descobrir que muitos usuários ainda não tiver instalado as últimas versões do Flash Player para o seu navegador e depois não ver o filme. No entanto, como já disse, o Flash CS3 permite desenvolver aplicações flash compatibilidade com versões anteriores mantendedo e, portanto, não vê neste nell'upgrade ostocalo grande do produto.
3. GUI e IDE

O IDE Flash CS3 (como o Dreamweaver CS3) foi revisado para melhor. Os painéis (ver figura à esquerda), muitas vezes desconfortável nas versões anteriores, foram completamente redesenhados e agora seu uso é notevolemente menos invasivo.
Além da possibilidade de minimizar os painéis (ver figura à direita) é encontrado, que faz uma verdadeira interface agradável e funcionalidade. Quando um painel é em ícone do modo ocupa muito menos espaço e com um simples clique você pode abrir o primeiro painel principal sempre visível.
Todo o IDE, em suma, foi revisto, incluindo a área central com a janela para edição e código gráfico. Você não apontar quaisquer alterações ou você vai estragar a surpresa ...

Criar modal MovieClip TopMost
di Flash. Ilustrar uma técnica para criar símbolos componentes (MovieClip) modais a serem utilizados de forma semelhante ao Alert e Window do Flash. O objetivo é mostrar um MovieClip acima de todas as outras, a desactivação - bem - o acesso ao subjacente e qualquer objeto presente / outro componente. Para ser honesto eu ter conseguido que, fazendo um pouco de "engenharia reversa do código da Adobe, que está em claro! Eu realmente têm resistido ![]()
O artefizio que é utilizado para desactivar qualquer interface presente abaixo do nosso MovieClip, é o de criar um MovieClip transparente que leva toda a área da fase. a false . Neste MovieClip, que não será muito visível, encaixar um método de "vazio" no evento onRelease , tendo o cuidado de definir o useHandCursor para false .
Primeiro vamos criar um filme com qualquer interface no palco principal:

Adicionar propriedades a um MovieClip
Na Mensagem Estender MovieClip no Flash MX eu tive alguns insights para estender um MovieClip. Em particular, tinha dito que a utilização de MovieClip.prototype não permitir a extensão da proprità mas apenas de métodos:
[...] Dois importantes limitações desta técnica são:
- Ele não pode ser aplicado a todos os objectos expostos pelo Flash
- Eles podem ser "adicionado" apenas métodos e propriedades não fazer [...]
Com efeito, é possível, com um passo extra, mesmo dinamicamente adicionar propriedades usando MovieClip.prototype . , infatti, Flash permetteva l'aggiunta di proprietà (in lettura/scrittura o solo lettura) tramite il metodo addProperty() . Antes da introdução da function get e function set , de facto, Flash permitiu a adição de propriedades (leitura / escrita ou de leitura apenas), através da addProperty() . Na prática, isto resulta na invocação do método addProperty() ea definição de dois getters e setters. O setter pode ser null , a fim de criar read-only propriedade. Por exemplo, se quiséssemos estender MovieClip com uma propriedade de todos os novos _alpha capaz de animar, basta escrever o seguinte código:
1 2 3 4 5 6 7 | : Number { _get_alpha function (): Número { this . _alpha ) ; de retorno (this. _alpha); } v : Number ) : Void { _set_alpha função (v: Número ): Void { this , "_alpha" , Strong . easeOut , this . _alpha , v , 1 , true ) ; novo Tween (this, "_alpha", Strong easeOut, este _alpha, v, 1, true..); } prototype . addProperty ( "_alpha_tween" , _get_alpha , _set_alpha ) ; MovieClip .. protótipo AddProperty ("_alpha_tween" _get_alpha, _set_alpha); |
A partir de agora, se temos um símbolo "miosimbolo_mc" Podemos explorar esta nova propriedade:
1 | ; miosimbolo_mc _alpha_tween = 50.; |
. O que você pode fazer em vez disso, é substituir as propriedades existentes, razão pela qual eu usei _alpha_tween em vez de _alpha . Aqui, então, uma boa razão para ainda usar as classes para 2.0 ampliarão - e resultados - qualquer MovieClip.
Flash: como inicializar os componentes no construtor de uma classe
Quando uma classe estente de outros objetos que ele contém um MovieClip (MovieClip, TextField, etc ...) eles podem não estar "pronto" dentro do construtor. Isto acontece especialmente quando se usa MovieClip mais longos ou componentes (controles) do Flash. Para resolver o problema é só usar o evento onLoad herdado da classe em si. Por exemplo, imagine que você tem um MovieClip que contém um objeto TextField (objeto visual estática dentro flash) e um objeto de TextInput (inserido componentes do painel de controle) e quiser definir alguma propriedade no construtor da nossa classe MyClass.
Nós criamos um símbolo e inserir dentro de qualquer objeto TextField (call vamos text_txt) é o objeto TextInput (textinput_txt). Nós associamos este símbolo de uma classe que estende MovieClip, ligar para a nossa classe MyClass. O que temos é que durante o construtor da nossa classe MyClass estes dois controles são inicializados. Se tentarmos usar um código como este:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | / / controls . TextInput ; importação mx controles TextInput..; / / MovieClip { classe MyClass estende MovieClip { / / text_txt : TextField ; private var text_txt: TextField ; textinput_txt : TextInput ; private var textinput_txt: TextInput; / / MyClass function () { "MiaClasse::costruttore" ) ; trace ("MyClass :: construtor"); / / = "Ciao" ; . text_txt text = "Olá"; = "Ciao" ; . textinput_txt text = "Olá"; / / } } |
Flash e reutilização de código: componentes e bibliotecas compartilhadas
Em vista da programação orientada a objeto vem naturalmente produzir componentes para reutilização em outros projetos, especialmente se estes componentes são de propósito geral. O uso de classes é definitivamente um passo na reutilização de código, no entanto, muitas vezes essas classes estão ligadas a MovieClip também extremamente complexa. Assim, surge a necessidade de "importar" é a classe ActionScript (que é muito fácil), mas também todos os símbolos associados.
Criando componentes em Flash
Esta rota é certamente o mais correto do ponto de vista estritamente lógico. No entanto, pelo menos, na sua versão de Flash MX, criar um componente que, pelo menos, aproxima-se os fornecidos com o ambiente de desenvolvimento não é pouca. ) e la scrittura estremamente accurata della classe legata al nostro componente. Os componentes, de facto, especialmente aqueles visual, requer uma série de procedimentos (tais como a inclusão das interfaces UIObject ou UIComponent ) e escrita classe extremamente preciso relacionada com a nossa componente. Mas o fato é que a criação de um componente é uma experiência interessante para fazer, mas o tempo de desenvolvimento é verdadeiramente notável. Além disso, como um componente deve suportar o modo de criação em designtime ou qualquer outra coisa que não oferece uma prévia do que vai acontecer em tempo de execução. Você pode associar um ícone e uma documentação totalmente integrado ao IDE do Flash, preencha com intellisense quando escrever código. Então aqui você escolher esse caminho envolve um gasto considerável de tempo, provavelmente reservado para projetos especiais, onde, por exemplo, é precisamente a componente do objetivo do projeto.
Há software house especializada na produção de componentes para o Flash, como produtos, tanto gratuitos e comerciais. Portanto excluindo os componentes extremamente simples, onde, por exemplo não há interface do utilizador, este método é excelente, mas temporalemte caro e, por conseguinte, não é usado na maioria dos casos.
Escrever código OO bom no Adobe Flash
Aqui estão algumas dicas sobre como escrever bom código Orientada a Objetos (OO) no Adobe Flash, especialmente para aqueles que ainda usam a versão MX esperando para ir para CS3.
Organize pastas aulas
Em primeiro lugar, a organização das classes faz o trabalho de manutenção de código extremamente simples. Você também pode criar uma biblioteca real, você pode reutilizar em outros projetos. Flash utiliza uma nomenclatura relacionada com o sistema de arquivos, em seguida, organizá-los em pastas serão também refletiu sobre a importação de classes. Por exemplo, se nós criamos a seqüência de pastas "mylibrary / graphics / Plot" e inserir o nosso próprio ActionScript classe "PlotClass.as" quando vamos importar a classe devemos usar:
1 | grafica . plot . PlotClass ; importação. MyLibrary gráficos trama. PlotClass.; |
Se a biblioteca (pasta) "mylibrary" não está na sua pasta filme ou projeto, use o Flash configurações de publicação para selecionar o caminho:







Últimos Comentários
kOoLiNuS : @ Giovambattista Fazioli: obrigado! mais do que dispostos!
Giovambattista Fazioli : @ kOoLiNuS: Calmo, provavelmente você pode antecipar que WPX Cleanfix será livre, e ...
kOoLiNuS : @ kOoLiNuS: a falta
e uma 
kOoLiNuS : @ Giovambattista Fazioli: Assinei, mas quando eu era o meu uso amador da plataforma ...
Giovambattista Fazioli : @ kOoLiNuS: Sim, este é um problema conhecido. Ocorre quando as tabelas em questão são ...