'Flash' Categoria
Para completar, em relação à Pintura Flash CS3: efeitos com Matrix matrizes quero enfatizar que a Matrix não são necessárias para o comportamento mostrado no post anterior. Na verdade, vemos no exemplo abaixo:
O código é ligeiramente diferente da anterior, é como se segue:
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
| / * Actionscript 2.0 código ** * / . MouseEvent ; flash.events de importação. MouseEvent ; . Matrix ; . importação flash.geom Matrix ; / / Flag para detectar a mousedown Boolean = false ; md var: Boolean = false; / / Crie um quadro-negro frente Sprite = new Sprite ( ) ; var lvg1: Sprite = new Sprite (); . lineStyle ( 0 , 0xffffff ) ; lvg1. gráficos lineStyle (0, 0xFFFFFF).; . beginFill ( 0x666666 ) ; .. lvg1 gráficos beginFill (0x666666); . drawRect ( 0 , 0 , 199 , 199 ) ; .. lvg1 gráficos drawRect (0, 0, 199, 199); . endFill ( ) ; lvg1. gráficos endFill ().; lvg1 ) ; addChild (lvg1); = lvg1 . y = 30 ; lvg1 x = y = 30 lvg1..; / / Criar o quadro inclinado Sprite = new Sprite ( ) ; var lvg2: Sprite = new Sprite (); . lineStyle ( 0 , 0xffffff ) ; lvg2. gráficos lineStyle (0, 0xFFFFFF).; . beginFill ( 0x666666 ) ; .. lvg2 gráficos beginFill (0x666666); . drawRect ( 0 , 0 , 199 , 199 ) ; .. lvg2 gráficos drawRect (0, 0, 199, 199); . endFill ( ) ; lvg2. gráficos endFill ().; = 400 ; lvg2 x = 400.; = lvg1 . y ; lvg2 y = y lvg1..; = 45 ; lvg2 rotação = 45.; = lvg2 . scaleY = . 6 ; lvg2 scaleX = lvg2 scaleY = 6...; lvg2 ) ; addChild (lvg2); / / / Paint / evento ( MouseEvent . MOUSE_DOWN , _onMouseDown ) ; . lvg1 addEventListener ( MouseEvent MOUSE_DOWN, _onMouseDown.); ( MouseEvent . MOUSE_MOVE , _onMouseMove ) ; lvg1 addEventListener (. MouseEvent MOUSE_MOVE, _onMouseMove.); ( MouseEvent . MOUSE_UP , _onMouseUp ) ; lvg1 addEventListener (. MouseEvent MOUSE_UP, _onMouseUp.); / / e : MouseEvent ) : void { função _onMouseDown (e: MouseEvent ): void { "_onMouseDown" ) ; trace ("_onMouseDown"); : uint = 0xffffff ; var c: uint = 0xFFFFFF; . graphics . lineStyle ( 10 , c , 1 ) ; ... e alvo de gráficos lineStyle (10, c, 1); . lineStyle ( 10 , c , 1 ) ; .. lvg2 gráficos lineStyle (10, c, 1); . graphics . moveTo ( e . localX , e . localY ) ; ... e alvo gráficos moveTo (and. localX e localY.); . moveTo ( e . localX , e . localY ) ; .. lvg2 gráficos moveTo (and. localX e localY.); md = true; } / / e : MouseEvent ) : void { md = false ; } _onMouseUp função (e: MouseEvent ): void {md = false;} / / e : MouseEvent ) : void { _onMouseMove função (e: MouseEvent ): void { "_onMouseMove" ) ; trace ("_onMouseMove"); md ) { if (md) { . graphics . lineTo ( e . localX , e . localY ) ; ... e alvo gráficos lineTo (and. localX e localY.); . lineTo ( e . localX , e . localY ) ; .. lvg2 gráficos lineTo (and. localX e localY.); } } |
Neste caso, as linhas 22-25 mostram que, mesmo com a rotação simples e deslocamento efeito é repetido.
Leia mais ...
Brincando com o objeto poderoso e versátil Matrix (matriz), vinculado às transformações, você pode fazer coisas estranhas. Estas ferramentas são utilizadas para aplicar transformações particulares para um objeto visual, tal como um sprite. Você pode, por exemplo, escala, rotação ou torção (inclinação) uma Sprite. e rotation ), per l'effetto Skew bisogna ricorrere direttamente alle matrici. Enquanto as duas primeiras funções, escala e rotação) objetos Sprite (e outros) fornecer diretamente as propriedades ( scaleX / scaleY e rotation ), o efeito de inclinação deve apelar diretamente para as matrizes. O que eu gostaria de enfatizar aqui é que quando nós modificarmos um objeto gráfico todas as suas coordenadas internas são deslocadas:
Leia mais ...
Alguns, muito justamente, discutir sobre o Adobe AIR, Adobe Integrated Runtime (ex-Apollo) oferecido pela Adobe. O que estamos falando? Afinal AIR ainda é um beta ( o mais recente lançamento é 12/12/2007 - o beta 3 ) e seu sucesso, incluindo a queiramos ou não, depende de muitos fatores.
Leia mais ...
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
| Shape = new Shape ( ) ; myShape var: Forma = new Forma (); myShape ) ; addChild (myShape); / / . lineStyle ( 2 , 0xff0000 , 1 ) ; .. myShape gráficos lineStyle (2, 0xFF0000, 1); . moveTo ( 0 , 0 ) ; .. myShape gráficos moveTo (0, 0); . lineTo ( 100 , 100 ) ; .. myShape gráficos lineTo (100, 100); |
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?
Leia mais ...
Yahoo! lançou apenas ASTRA , um conjunto de componentes para Adobe Flash e Flex . Eu tenho que dizer que, pelo menos no que diz respeito aos componentes para o Flash, eu tive uma decepção metade (se não total). O mais interessante, talvez, é o TabBar ... o resto deixa muito a desejar. Eles olham para alguns componentes desenvolveram o seu projeto - interno - e agora lançado como produto aberto! Talvez, no Yahoo!, já estamos alinhados com as políticas da Microsoft ... já que hoje a empresa de software fundada por Bill ofereceu 44,6 bilhões de dólares para comprar o Yahoo!! 44,6 bilhões, que eu não tenha digitado errado!
Mas fazer uma viagem no site onde você pode encontrar vários recursos úteis. Esperamos que no futuro próximo.
Leia mais ...
. 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:
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.
Leia mais ...
Notei muitas vezes confusão quando se trata de classes, objetos e instâncias. Quem não é particularmente educados sobre programação orientada a objetos, muitas vezes confunde o verdadeiro significado destes termos. Eu sabia, entretanto, que há duas escolas de pensamento sobre a definição de classe e objeto. Eu gosto da "escola" que indica a definição de classe como um sujeito possível, e assim o objeto como instância da classe.
Parece simples, mas isso aconteceu comigo - conversando com os outros - para a "conflito" (por assim dizer) e depois entram em confusão, ao usar esses termos, se alguma coisa, a partir da premissa de que "o outro", assim como pretendemos-los .
Eu vejo isso dessa forma, uma classe é uma definição! É precisamente definido classe de objetos possíveis. A classe é o conjunto de métodos e propriedades (se você quiser, também pode adicionar eventos - O que mais ... não só que os métodos especiais) que o dono do objeto.
Por exemplo, quando escrevemos em Actionscript, ou qualquer outra linguagem orientada a objetos outra:
1 2 3 4
| classe MyClass { MiaClass função () {} myMethod function () {} } |
Nós definimos uma classe e não um objeto. No limite temos "definido" um objeto "possível". Nós poderíamos até argumentar, com razão, que o objeto existe em tempo de execução enquanto não Class (na verdade, há aulas dinâmicas que podem ser definidos - e então usado para criar objetos - mesmo em tempo de execução). Excluir classes estáticas, é claro, que - eventualmente - são nada mais do que sub-instâncias (ou instâncias oculto) e objetos reais.
Mas quando:
1
| MiaClasse = new MiaClasse ( ) ; var MyObject: MinhaClasse = new MinhaClasse (); |
! Aqui mioOggetto é uma instância de MiaClasse() ! . Isso mioOggetto é um assunto - na verdade - do tipo MiaClasse() .
. Consequentemente, a sua filosofia de objetos, objetos do tipo MiaClasse() eu posso ter como muitos como eu quero, algo que não pode ser - a própria definição - de MiaClasse() . Por exemplo, se aplica e faz sentido para a relação:
1 2 3 4 5
| MiaClasse = new MiaClasse ( ) ; var mioOggetto_1: MinhaClasse = new MinhaClasse (); MiaClasse = new MiaClasse ( ) ; var mioOggetto_2: MinhaClasse = new MinhaClasse (); MiaClasse = new MiaClasse ( ) ; var mioOggetto_3: MinhaClasse = new MinhaClasse (); ... MiaClasse = new MiaClasse ( ) ; var mioOggetto_n: MinhaClasse = new MinhaClasse (); |
Não faz sentido:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| classe MyClass { MiaClass função () {} MioMetodo_2 function () {} }
classe MyClass { MiaClass função () {} MioMetodo_2 function () {} }
classe MyClass { MiaClass função () {} MioMetodo_3 function () {} } |
Instância objecto e, portanto, coincidem e são utilizados alternadamente para o mesmo significado em diferentes contextos.
Provavelmente não muito cuidado pra ninguém ... a questão precisa ser completa ... 
Leia mais ...
Eu já tinha falado no Flash CS3: O tratamento novo evento . Volto a pergunta para sottolieare a diferença desta nova abordagem em relação às versões anteriores do ActionScript. Esquematicamente, temos uma situação geral deste tipo:

Qualquer objeto que oferece suporte a eventos, em última análise, sempre expõe o addEventListener (). Na documentação, inter alia, leia-se:
O que há de novo para ouvintes de eventos no ActionScript 3.0
[...] Para adicionar ouvintes de eventos no ActionScript 2.0 é às vezes usa addListener () e, por vezes addEventListener (), enquanto que em ActionScript 3.0 usando addEventListener () em todas as situações.
[..]
A gestão de eventos, em seguida, é normalizada ao nível do ouvinte real. Todas as "características" de escuta, de fato, tem a seguinte estrutura:
1 2 3
| eventObject : EventType ) : void { função eventResponse (eventObject: EventType): void { / / As ações em resposta a eventos são definidos aqui. } |
o una sua sottoclasse. EvenType é sempre um objeto da classe Event ou subclasse. . Isto permite sempre obter informações específicas para um determinado evento, além de manipular propriedades padrão como target ou currentTarget .
Uma diferença importante com versões anteriores do ActionScript, com respeito ao ouvinte, é que:
No ActionScript 2.0, os ouvintes de eventos podem ser tanto de funções, métodos ou objetos, enquanto que em ActionScript 3.0 pode ser apenas ouvintes de eventos funções ou métodos.
Assim, tendo usado para alguma estrutura tempo "para eventos das versões anteriores do Flash, devo dizer que esta nova abordagem é muito bom. É um pouco de desenvolvimento "que com o ActionScript 3.0 e, após uma pequena perda inicial (só para recuperar o que foi previamente assumido) agora eu não consigo entender como eu podia suportar o método" antigo "dos acontecimentos das versões anteriores.
Leia mais ...
Google tem APIs - em Javascript - para colocar seus mapas em qualquer site da web Viediamo como realizar a mesma coisa com o Flash.!
Partimos de um componente gratuito, UMAP (Universal ActionScript 3.0 API Mapeamento - Integração com o Google Maps), desenvolvido pela AFComponents , uma das empresas verticalmente organizadas de componentes para realmente interessante Flash / Flex e acessível. No site, onde você deve registrar-se para tirar vantagem de downloads gratuitos, há também versões UMAP para ActionScript 2.0: MAP G Ver.2.6.1 . Neste caso, vamos analisar a versão beta de 0,4 UMAP para ActionScript 3.0 (dentro do pacote, há também um componente Flex). Isso nós vamos ver é - obviamente - uma versão beta e está faltando, então, alguns recursos presentes na versão para ActionScript 2.0 ( G Ver.2.6.1 MAP ). No entanto, a propriedade executado impecavelmente para o futuro, parece mais interessante chamar a atenção para este lançamento, eu tentei ambos e, apesar da maior abrangência da versão para ActionScript 2.0, Actionscript 3.0 versão beta é consideravelmente mais poderoso.
Leia mais ...
Querido Papai Noel Adobe,
apesar de ter já recebido dois patches para Flash CS3 (versão 9.0.2), alguns problemas na sua utilização têm aparecido como em todos os softwares do mundo, especialmente nesta versão de que as mudanças que sofreu muitos.
- Editor L 'ActionScript, por exemplo, é lento e espasmódico! Considere-se, Adobe querida Santa, que o meu carro tem 8Gbyte de RAM e um processador Intel quad core duo!
- Durante a formatação automática, de linhas de código como este abaixo, estão "mal entendido" e reformatado o mal:
1
| ( MouseEvent . CLICK , function ( e ) { myfunc ( ) ; } ) ; mybtn addEventListener (. MouseEvent CLICK, function (e) {myfunc ();}.); |
Adicionando chaves onde deveria ser:
1 2
| ( MouseEvent . CLICK , function ( e ) { myfunc ( ) ; } ) ; mybtn addEventListener (. MouseEvent CLICK, function (e) {myfunc ();}.); // < -- chi te l'ha detto?! } / / <- Quem te disse? |
Então é melhor usar a sintaxe:
- O boleto janelas, pelo menos na implementação do Windows Vista, ocasionalmente desaparecendo sob outros painéis ... A janela da Ajuda, a orientação em suma, cria um problema quando você tenta um projeto. O último, na verdade, desaparece atrás dos outros painéis ... mistério! No entanto, este defeito, tal como outros, nem sempre é reprodutível.
- Os componentes têm um comportamento estranho: às vezes são mostrados, em tempo de design, como retângulos brancos ... mas continuam a operar em tempo de execução!

- O 'anterprima scale9Grid, como indicado na documentação nova e ser capaz de mostrar os objetos corretamente redimensionadas em tempo de design, continua a ser atormentado pelos problemas da versão anterior! Muito ruim!

No entanto, no Natal tudo é melhor ... por isso, querido Papai Adobe, nós olhamos para a frente atualizações futuras.
Leia mais ...
Últimos Comentários
Gabriel : Olá, interessante artigo. Eu preciso de algo semelhante, mas com algumas mudanças. Em um ...
sebastian : grande parcela - muito obrigado!
Assunto : muito útil mesmo! Eu tentei isso e é exatamente o que eu precisava. Agora eu quero saber como faço para obter ...
vik : Com a ajuda estratégica!
Pimenta : Olá, eu não sei se você é um dos criadores do plugin WP Bannerize. Tenho visto um ...