Saturday 9 December 2017

Urlloader as3 binary options


Estou tentando criar um aplicativo que pode mostrar uma lista de opções de um XML. Em seguida, quando uma opção é clicada carregar dados de um XML diferente para mostrar para a opção que eles escolheram que é j. O código que eu tenho aqui só vai para a última variável depois de ser colocado através do loop por isso não importa qual opção i clique ele vai para os dados da última opção. Ele também remove o último filho dos botões originais também. Alguém tem alguma idéia de como eu poderia obtê-lo para ir para a página certa perguntou agosto 22 12 em 16: 26ActionScript 3.0. URLLoader não é possível carregar dados de texto externo no Firefox Eu uso o construtor flex para compilar uma única classe para carregar um texto de dados do mesmo domain. it funciona perfeito no navegador IE. Mas algo está errado com o navegador Firefox. Olhe para o seguinte código: Posts Similares: Eu tenho um filme Flash que se comporta da seguinte forma: O filme carrega gt tenta carregar um arquivo XML usando URLLoader. load () gt usa os dados em O XML para carregar algumas imagens no filme. O requisito era para atualizações para o arquivo XML para ser pego dentro de 10 minutos, então eu adicionei um parâmetro querystring para o URL XML que é um carimbo de data / hora para os dez minutos mais próximos, eg1 -40 Tudo isso funciona para mim como esperado no IE e Chrome, e ele funciona localmente para mim no Firefox. No entanto, no nosso servidor de produção (IIS) no Firefox, ocorre o seguinte comportamento (observando o Firebug): Primeiro carregamento: SWF carrega gt XML Solicitado e carrega as imagens gt solicitadas e loadSubsequentes cargas de página: SWF Carrega gt nenhuma solicitação para o XML Solicitação mostrada no Firebug Firebug mostra as seguintes informações sobre o arquivo XML do primeiro pedido bem-sucedido: Cabeçalhos de resposta Cache-Control max-age31536000 Conteúdo de comprimento 640 Eu tenho o site Flash, e eu carregar dados de arquivo XML com urlLoader. Se eu alterar os dados em XML-arquivo, atualização doesn039t atualizar dados no site. Eu preciso publicá-lo novamente Como posso fazer isso automática, que eu só preciso atualizar quando os dados são alterados Eu can039t allways publicar quando eu mudar alguma coisa em XML-file. Eu quero saber qual caminho é a melhor solução para carregar um arquivo de texto externo, que contém texto com itálico / negrito / conteúdo de cor (editado pelo cliente ..) Eu entendo o Flash e AS3 é single-threaded, pelo menos no nível do usuário. Gostaria de entender como o carregamento de dados assíncrono é gerenciado pelo Flash Player. Por exemplo, se eu executar o código intensivo de CPU que vai além do quadro normal (vamos dizer que ele é executado em ENTERFRAME e consome 1/4 por chamada). Isso deixa quaisquer ciclos de CPU para carregar dados de um URLLoader Se o carregamento de HTTP é verdadeiramente síncrono, até a manipulação da pilha de TCP / IP, obter-se-ia um desempenho horrível. Na programação do Windows, posso fazer o acesso http assíncrona (caso em que as bibliotecas do Windows estão fazendo qualquer entrada em um segmento separado, ou fazendo interrupções de nível de hardware para lidar com os dados - eu fornecer um callback assíncrono que pode ser em seu próprio thread ). Ou, eu posso fazer download síncrono, caso em que haverá buffer de hardware, mas meu aplicativo está ativamente à espera de cada buffer de dados a ser entregue pela combinação de hardware / SO. O URLLoader é assíncrono, mas o que isso significa? Significa que posso executar a CPU e ainda baixar dados? Ou, minha velocidade de download será lenta para um rastreamento se meu aplicativo Flash estiver sob carga de CPU pesada? Entender como isso funciona ajudará a projetar meu Melhor produto, que tanto usa um monte de CPU, e downloads de um monte de dados (para o limite de largura de banda da rede, se possível). 1 - O SWF deve ter capacidade para carregar dados binários de qualquer domínio. 2 - SWF não pode carregar o arquivo XML da diretiva do url, causa o formulário do upload permite-me somente transferir arquivos swf, assim que eu não posso incluir nenhuns outros dados. Eu tentei: Mas ele funciona apenas para arquivos SWF. Eu tentei incorporar a política arquivo XML: var dataXML: XML ltxml versionquot1.0quotgt lt-- foo / crossdomain. xml --gt ltcross-domain-policygt Isso fará um erro de segurança, Se o arquivo é de domínio diferente do arquivo SWF. É possível obter dados binários de JavaScript usando ExternatInterface em AS3 code. Here é biblioteca de cross-browser para leitura de arquivos binários: leitor binário e versão posterior jDataView. Eu estou tentando obter minhas variáveis ​​PHP de meu documento load. php para o meu documento flash. That tudo funciona bem e eu sou capaz de obter os meus dados para baixo para variáveis ​​flash dentro da minha função. Mas, eu gostaria de ser capaz de acessar Esses dados de fora desta função que obtém os dados - infelizmente eu não posso, ou. Não sei como. Espero que você seja capaz de lançar uma luz sobre o meu problema. Então aqui vai, este é o meu código: Código: var myLoader: URLLoader new URLLoader () myLoader. dataFormat URLLoaderDataFormat. VARIABLES Como recuperar dados xml em uma página aspx depois de enviá-lo usando URLLoader. load Este é o código flash que estou usando: Var urlLoader: URLLoader new URLLoader () urlLoader. dataFormat URLLoaderDataFormat. TEXT // tentado dando VARIABLES também urlLoader. addEventListener (EventPLETE, handleComplete) urlLoader. addEventListener (IOErrorEvent. IOERROR, ioErrorHandler) Código. Eu era capaz de aceitar dados na declaração acima quando eu enviar uma seqüência de caracteres em var1 dizer quottestquot. Mas ao enviar xml acima erro é getting. I tentaram carregar os dados xml em XMLDocument também. Em AS20 eu usei sendAndLoad método para enviar e reterive xml dados. Estou fazendo chamadas de descanso com urlload. load (urlRquest). Também urlRequest. method URLRequestMethod. POST urlRequest. contentType quotapplication / xmlquot Quando faço as chamadas dentro do Flash IDE, recebo HTTPStatusEvent. status 400 (ou qualquer outro) quando ocorre um erro. E o IOErrorEvent. data contém xml (ou às vezes uma string). No entanto, quando executo o swf em um navegador (Firefox Mac ou PC), o HTTPStatusEvent. status 0 eo IOErrorEvent. data está vazio. (Curiosamente no Safari Mac, eu recebo o status 400, mas ainda não há dados.) Eu tentando carregar seqüências indivual de texto a partir de um arquivo externo. Exemplo: Eu tenho um filme que navega de quadro para quadro. Em cada quadro I039d como uma linha de texto para carregar no filme. Quando o usuário navega para o próximo quadro, o texto carregado desaparece e é substituído por outra linha de texto. Isso pode ser feito com arquivos txt separados, certo, mas eu queria saber se e como ele poderia ser feito usando um arquivo de texto externo. Eu quero usar URLLoader para carregar um artigo textified do meu código do site joomla. Eu tenho um URLLoader que normalmente pedindo os dados para estar em formato de texto, de qualquer maneira em condições específicas pode obter um binário como resultado, que é na verdade apenas 1 número inteiro em formato binário. De qualquer forma a conversa: não passa mais já que os dados de resultado estão em forma de texto devido ao cabeçalho da solicitação. Como converter os dados de resultado em inteiro Eu quero criar uma caixa de diálogo popup quando o herói se move para o próximo popup usando o Script que irá mudar dinamicamente no clique do mouse no campo de texto. A idéia é armazenar o diálogo em arquivos txt e chamá-lo por Variável usando URLLoader. I seguido tutorial aqui: URL. E tentar criar meu próprio código version. codeThe chamará dialogScene1 e quando o usuário clicar no campo de texto de dialog2, ele vai carregar onDataLoad2.Let dizer que eu quero carregar 10 diálogo, eu devo criar o dialogScene1 até dialogScene10 que é rediculous. Estou tentando carregar um arquivo de texto externo, mas continuar recebendo a seguinte mensagem de erro: Código: Selecione allTypeError: Erro 2007: O URL do parâmetro deve ser não nulo. Em flash. net::URLStream/load () em flash. net::URLLoader/load () em lee. dataload :: TextLoader () este é o código i039m usando, i039m muito novo para actionscript assim it039s provavelmente carregado com erros: Eu tenho esse problema, o urlloader é suposto para transmitir alguns dados binários para o servidor (upload), mas doesn039t parecem trabalhar com qualquer coisa, exceto Internet Explorer Eu tentei com o Safari (apenas no mac) no Firefox (no Mac e no Windows ) E no ChromeURL e estas fonte é: Eu tenho revisto o meu código várias vezes e talvez eu estou faltando something. Basically, eu tenho uma classe separada loader que eu quero comunicar com um arquivo php localizado no mesmo diretório. Que php arquivo formulários Uma marcação xml dentro e retorna o local de uma imagem de plano de fundo do banco de dados. Como você pode ver a partir do código, eu tenho ouvintes evento para o progresso, carregado e IOerror. This funciona bem no IE e Chrome. No entanto, no FF e Opera, minha barra de progresso personalizada mostra 100, mas a barra de informações mostra quotIO Errorquot (que é uma declaração de rastreio visível no swf para fins informativos) e não vai a lugar nenhum. Preso. Esta é a localização do swf039s: url. PHPGetBackground class: Código: Select allpackage com. hexonite. loader Eu tenho um problema com o URLLoader que eu não encontrei antes. Revi meu código várias vezes e talvez eu esteja faltando alguma coisa. Basicamente, eu tenho uma classe de carregador separada que eu quero comunicar com um arquivo php localizado no mesmo diretório. Esse arquivo php forma uma marcação xml dentro e retorna o local de uma imagem de plano de fundo do banco de dados. Como você pode ver a partir do código, eu tenho ouvintes evento para o progresso, carregado e IOerror. Isso funciona bem no IE e no Chrome. No entanto, no FF e Opera, minha barra de progresso personalizada mostra 100, mas a barra de informações mostra quotIO Errorquot (que é uma declaração de rastreio visível no swf para fins informativos) e não vai a lugar nenhum. Esta é a localização swf039s: URL PHPGetBackground classe: package com. hexonite. loader import flash. display. Sprite importação flash. events. Event im tentando ler dados de um arquivo de texto aqui URLwhat eu cant descobrir é como chamar cada valor para Seu próprio campo de texto dinâmico. AAAA MM DD hh mm H0 SwH SwP WWH WWP SwD WWD PASSAGEM AVP MWD 2006 12 10 00 00 0,3 0,3 6,2 0,1 3,2 ESE SE N / A 6,1 110 2006 12 09 23 00 0,3 0,3 9,1 0,1 3,6 SE SE N / A 6,2 134 2006 12 09 22 00 0,3 0,3 9,1 0,1 3,6 SE ESE N / A 6,2 125 2006 12 09 21 00 0,3 0,3 7,1 0,1 3,4 ESE ESE N / A 5,9 119 Vou criar um programa para usar para a entrada de dados. Eu estarei estudando zebras no kenya e eu não terei a internet lá como I039m registrando os dados. I039d gostaria de ser capaz de enviar os dados que gerar em flash para um arquivo de texto externo. Eu entendo que eu preciso de algum tipo de script para fazer isso, mas isso é algo que eu possa executar apenas na minha máquina (I039ll provavelmente fazer os dados em formato xml). Eu tenho um site OOP PHP estruturado com um padrão MVC. Uma página no site tem um SWF incorporado que precisa extrair informações de um banco de dados. No passado, eu teria acabado de ter um arquivo php procedural para o swf para carregar os dados do banco de dados de. No entanto, esse método não parece que ele se encaixaria com um site mais objeted orientado. O que seria a maneira quotproperquot para o swf para carregar dados externos Devo criar uma classe e um padrão MVC na estrutura normal do site que pode puxar os dados (por exemplo, mysite / flash / dados) e apenas passar este caminho para o swf Como uma estrutura FlashVar: Há um arquivo principal que carrega arquivos SWF externos, dependendo do que é clicado. Um dos arquivos SWF externos carrega o texto de arquivos de texto externos. Isso funciona bem ao exibir o applet SWF por conta própria. Mas ao visualizar como um site inteiro, o texto não aparece. Muito chato. Eu fiz esse SWF particular em meu computador mums executando Flash MX 2004O arquivo flash em si usa o componente Scrollbar de MX. Could alguém me diga por que o texto não carrega neste cenário ele funciona bem por conta própria, não apenas como um externo SWF. I039m usando flash 8 e estou querendo saber se é possível externamente carregar lables em uma caixa ceck de xml. Meus aplicativos precisam carregar o xml como dados externos. Às vezes, o conteúdo do arquivo xml será alterado. Como eu sei quando aconteceu. Na verdade, eu não quero verificar carregando todos os dados do arquivo xml. Talvez, we039re usando tempo modificado ou algo assim I039ve realmente parecia difícil encontrar um exemplo / tutorial para carregar dados XML externos em um componente DataGrid usando AS3. O código I039m usando no momento tem os dados XML no código AS. Aqui está o código que está funcionando para dados XML internos: import fl. controls. dataGridClasses. DataGridColumn importar fl. data. DataProvider stop () var emailXML: XML ltemailsgt Code. Ele funciona bem, mas eu quero o arquivo data. txt, para estar em um domínio diferente do que o swf. Quando eu escrevo loadText. loadURL o swf doesn039t trabalho. Como posso resolver este problema estou tentando atribuir dados externos a uma variável, var str: String loadVariables (quottext. txtquot, root. descPane) por que ele não vai funcionar em AS3 I039m tentando carregar um URL (um endereço do Yahoo) para o aplicativo Para que eu possa processar o código fonte e puxar as coisas de it. However, quando eu carregá-lo, ou qualquer outra página, eu recebo 0 bytes back. Here039s meu código atual. Private function doSearch (): void var req: URLRequest new URLRequest (quotyahooquot) loader var: URLLoader new URLLoader () Tudo o que estou tentando fazer é postar nome, sobrenome e endereço de e-mail de um formulário dentro do meu swf para um arquivo php e, em seguida, Php arquivo para retornar um resultado de volta para o meu swf. Primeiro de tudo eu tentei usar a interface externa para lidar com isso, porque o servidor vai funcionar em doesnt suporte PHP. Eu tinha o SWFgrab os dados dos campos de texto, passar os dados para JS através de interface externa, então o JS iria usar jquery AJAX para executar o arquivo php, então o JS iria pegar os resultados da div AJAXd, em seguida, passar os dados de volta Através do SWF. Foi um pouco de um círculo jerk mas funcionou. No entanto, o script PHP que precisa ser executado em um domínio diferente como o SWF. Esqueci que isso causaria um problema. Eu tentei então setup políticas do AJAX crossdomain, mas este está indo ser um local razoavelmente elevado do tráfego e eu senti que as opções do proxy que eu encontrei eram tipo de lento. Eu percebi que o que estava sendo feito até agora provavelmente foi mais complicado de qualquer maneira. Então, voltei ao básico e tentei usar o URLLoader para carregar o arquivo php como uma string. Eu setup um arquivo de crossdomain. xml no meu servidor que será hospedar o PHP e usado o carregador para pegar o arquivo PHP. Isso funciona bem, todo o PHP faz é eco 3 valores separados por vírgula que eu dividi em uma matriz e uso em meu SWF. Recebo os valores sem problema. No entanto, minha barra de status no firefox continua dizendo que sua transferência ainda. Ive tentou dizer o script PHP para 039exit () 039 após o seu echo039d meus resultados. Eu tentei dizer o URLoader para. close () quando o seu agarrou os dados, nenhum dos quais impedi-lo de transferência. Im também usando a web debugging proxy 039Charles039 e que diz que a conexão aberta e fechada com êxito, mas o firefox ainda diz que o seu transferring. code. Tendo problemas para obter a classe URLLoader para trabalhar. Unsure, mas devo estar faltando algo básico. Just tentar enviar pares nome / valor de asp para flash. AS3 Código: Código: var loader: URLLoader new URLLoader () loader. dataFormat URLLoaderDataFormat. VARIABLES Estou trabalhando com este pequeno jogo sidescroller baseado em telha, im salvando mapas para arquivo xml. Mas tenho esse pequeno problema. Gostaria de fazer algo assim. Var currentLevel: int 1 var myMap: Cadeia de caracteres quotmapquot currentLevel var myMap xmlData. myMap. tiles. text () então eu gostaria de colocar essa variável para que a obtenção de dados do xml, então se o meu currentLevel muda seu recebendo diffrent dados do arquivo xml. Assim é que é possível colocar a variável para que xmlData. myMap. tiles. text () Motion: Capítulo 7 - Aprendizado do ActionScript 3.0 Páginas: 1. 2. 3. 4 Zenos Paradoxo Outra maneira de adicionar fricção ao movimento do objeto é usar o paradoxo Zenos. Que diz que, quando se deslocam de um ponto para outro, você nunca realmente chegar ao seu destino final, porque você está dividindo a distância restante com cada movimento. Se você dividir a distância entre o ponto a eo ponto b em metade com cada passo, teoricamente, você nunca poderia alcançar o ponto b. Deixando de lado a filosofia, essa idéia pode ser usada para retardar um objeto à medida que ele se aproxima de seu destino, como ilustrado na Figura 7-9. Figura 7-9: paradoxo de Zenos, uma maneira simples de descrever fricção ou facilidade Isso é especialmente útil quando você simplesmente deseja adicionar a desaceleração básica entre dois pontos e não precisa de um sistema mais elaborado. O exemplo a seguir começa criando um clipe de filme bola da biblioteca e, em seguida, chama a função onLoop () cada inserir quadro. OnLoop () atualiza os clipes de filme coordenadas xey separadamente chamando a função velFriction (), passando no local de origem, local de destino e número de vezes que você deseja dividir a distância percorrida. A função velFriction () calcula a diferença entre os valores de ponto de origem e de destino e divide o resultado pelo número de passos utilizados para fechar a distância. Observe que, apesar da forma comumente declarada de paradoxo Zenos, você nem sempre tem que cortar a distância pela metade usando dois passos. Na verdade, é assim que você varia a desaceleração das animações. Os números mais altos exigem mais tempo para o objeto alcançar seu destino e números mais baixos terminam a animação mais rapidamente. Este valor pode ser considerado como um coeficiente de atrito. Como é verdade em muitos exemplos neste capítulo, você pode querer adicionar um fator de tolerância a este sistema em seus próprios projetos. Por exemplo, você pode usar um condicional que remove o ouvinte do evento quando o clipe de filme se aproxima o suficiente do seu destino para que você eventualmente alcance seu destino. Uma variante desta técnica de otimização é usada na seção no final deste capítulo. Elasticidade Outra propriedade da física que pode animar animações é a elasticidade. As propriedades elásticas podem ser aplicadas a simulações de mola, é claro, mas também podem ser usadas como um outro método de atenuação. A elasticidade é facilmente calculada usando a lei de Hookes. A lei de Hookes diz que a força exercida por uma mola é linearmente proporcional à distância que é esticada ou comprimida. É expresso com a fórmula F 8722kx. F é a força resultante, 8722k é uma constante de mola, indicando a força da mola, e x é a distância à qual a mola é deformada. (Embora não seja vital para esta discussão, a equação é expressa como um negativo porque a força expressa pela mola, muitas vezes chamada de força restauradora, não está na mesma direção que a força aplicada à mola.) O exemplo a seguir usa elasticidade para Resolver um clipe de filme em cada novo local. O clipe de filme move-se de uma posição inicial para onde o mouse é movido, saltando em torno do destino até ser resolvido, como mostrado na Figura 7-10. Figura 7-10: Uma descrição básica de facilitar usando a lei de elasticidade de Hookes O script começa criando um clipe de filme e inicializando variáveis ​​de velocidade xey. Em seguida, ele cria um ouvinte de quadro de entrada que chama uma função de elasticidade nas linhas 10 e 11 que determina a velocidade xey, e incrementa as posições xey da bola ao longo do tempo. A função de elasticidade é chamada separadamente para os valores xey, permitindo maior flexibilidade na qual a propriedade afeta. Por exemplo, para calcular a força de uma mola em um cilindro, você pode querer afetar apenas o valor y, ao invés de ambos os valores xey. Passado para a função nas linhas 10 e 11 estão as posições de início e de término dos clipes de filme, a constante de mola, um fator de amortecimento (os dois serão explicados em um momento) e as velocidades x e y atuais. Finalmente, as localizações x e y do clipe de filme são atualizadas com as velocidades recém-calculadas. Tudo o que resta é o próprio cálculo da elasticidade. A velocidade com elasticidade é calculada primeiramente empregando a lei de Hookes. A força elástica é determinada na linha 16 pela multiplicação da constante de mola (a força da mola) pela distância entre o ponto de partida eo local do mouse (a distância da mola ficcional é esticada). Essa elasticidade é composta usando o operador para que o valor possa variar com cada nova posição do clipe de filme e / ou mouse. Como as molas não têm energia infinita, a força elástica é amortecida toda vez que a função é chamada, exercendo apenas 85% do último valor da força na elasticidade atual até que a elasticidade seja reduzida a zero. Seção 7.4: Interpolação programática Quando você precisa de uma animação relativamente simples e não quer gastar tempo e esforço codificando você mesmo, você pode ser capaz de usar flashs built-in classe Tween. Um arquivo de exemplo chamado astween. fla pode ser encontrado no código-fonte que acompanha. A classe Tween permite que você especifique o objeto de exibição compatível ea propriedade que deseja interpolar, a função de atenuação pré-criada que afetará a alteração de propriedade, os valores de início e de término da propriedade, a duração da interpolação e, finalmente, se Use segundos ou quadros ao avaliar a duração de tweens. Aqui está um olhar para o construtor de classes. O exemplo a seguir cria um clipe de filme bola, coloca-lo no ponto (100, 100) e, em seguida, cria a interpolação. Ele altera a coordenada x do clipe de filme, usando uma flexibilização elástica. Começa na posição 100 e termina na posição 400, e leva 3 segundos (indicado pelo valor verdadeiro do último parâmetro, useSeconds) para completar a interpolação. Nota: Neste caso, se o último parâmetro for falso. A duração da interpolação seria medida em quadros. Considerando um tempo de 20 quadros por segundo, um frame equivalente a 3 segundos seria 60. Como uma única instância de tween controla uma única propriedade, é possível, e bastante comum, criar várias interpolações para o mesmo objeto. Eles nem sequer têm de ter valores que acompanhem o ritmo com outras instâncias relacionadas da classe Tween. Por exemplo, adicionar esta nova linha enfatizada (linha 9) ao script anterior irá desaparecer no clipe de filme bola de um valor de 30 por cento para 100 por cento nos mesmos 3 segundos, mas em um processo linear sem efeito de atenuação. A classe Tween tem várias propriedades, métodos e eventos adicionais para uso por cada instância da classe. As propriedades notáveis ​​incluem o Booleans isPlaying e loop (indicando se a animação está em andamento e loop, respectivamente) e a posição Number. A propriedade de posição indica o valor atual da propriedade de interpolação, portanto, refere-se à posição atual da interpolação. Não a posição x / y do objeto de exibição no stage8212, isto é, a instância ballAlphaTween vista anteriormente ainda relata a variável de posição, mesmo que o valor alfa do clipe de filme esteja sendo interpolado. Os métodos disponíveis incluem várias opções de navegação, que comandam a interpolação para parar, iniciar e retomar a reprodução, ir para o próximo, anterior, primeiro e último quadros da animação e reproduzir até que um ponto especificado na interpolação seja atingido. Os eventos associados à interpolação são acionados quando a animação é iniciada, interrompida ou reiniciada, quando ela rola ou termina e até mesmo durante a animação cada vez que a tela é atualizada. Selecione a classe facilitadora a ser usada por meio do pacote fl. transitions. easing. Embora a especificação de uma classe de atenuação seja necessária, uma das opções disponíveis é Nenhuma. Assim que você não tem que aplicar um efeito facilitando a sua interpolação. Os nomes e descrições das classes facilitadoras disponíveis podem ser encontrados na Tabela 7-1. Tabela 7-1: Tipos de facilidade encontrados no pacote de facilitação fl. transitions Destaque enfatizado, mais forte do que aquele encontrado no recurso de facilidade simples do cronograma, mas sem efeitos adicionais. Acelera e desacelera. Cada classe tem um mínimo de três métodos para cobrir a facilitação, facilitando e facilitando tanto dentro como fora da interpolação. Todos os métodos para cada classe suportam os valores inicial e final da propriedade que está sendo animada, a duração da facilitação ea hora atual na animação. Back também suporta um valor para o grau de superação além do alvo no início e / ou final da animação e Elastic adiciona suporte para a amplitude e período da onda senoidal utilizada para calcular a elasticidade. Seção 7.5: Recreação de Linha de Tempo Recreações Enquanto isso não é inteiramente uma solução do ActionScript, gostaria de cobrir as novas classes do Flash CS3 e Motion e Animator. Estas classes, e os seus jogadores de apoio, tornam possível reproduzir animações que foram criadas anteriormente na linha de tempo. Os puristas de scripts podem estar mais interessados ​​em aperfeiçoar suas habilidades do ActionScript do que confiar na linha do tempo para originar animações. No entanto, esse recurso pode ser atraente para muitos usuários do Flash CS3, mesmo codificando curmudgeons, por duas razões. Primeiramente, ele não usa a linha do tempo, mas ainda torna possível reproduzir animações complexas criadas por meio de animações que podem não ser tão fáceis de se obter com o ActionScript. Em segundo lugar, ele oferece um novo caminho para a colaboração designer-programador melhorado. Os designers podem criar animações de linha de tempo e os programadores podem integrar esse trabalho em outros projetos sem depender da estrutura de cronograma original. A base deste processo existe em um recurso chamado Copy Motion como ActionScript 3.0. Depois de criar uma interpolação de timeline, você pode selecionar a interpolação inteira e, em seguida, escolher a opção de menu Copiar movimento como ActionScript 3.0 no menu EditTimeline. Isso copia para a área de transferência todas as informações necessárias para recriar a interpolação com o código. Durante o processo de cópia, o recurso solicita o nome da instância dos símbolos interpolados com um diálogo conveniente8212prepopulated se o nome da instância já existir. Quando a cópia for concluída, você poderá colar os resultados no painel Ações. Todo o ActionScript necessário é incluído eo movimento é representado por informações XML no formato exigido pela classe Motion. Um exemplo simples, tweening um clipe de filme em todo o palco sobre 20 quadros, segue: Olhando sobre o XML gerado, você pode escolher propriedades como duração. taxa de quadros . Coordenadas xey, escala. E rotação. Também estão incluídos o tipo de objeto de exibição (clipe de filme), seu nome de instância e informações sobre suas dimensões, ponto de registro e ponto de transformação. Por fim, os dados sobre cada quadro-chave são citados, incluindo o quadro em que cada um reside, o tipo de facilitação utilizada e qualquer informação que tenha mudado de quadro-chave para quadro-chave. Neste caso, apenas a coordenada x foi interpolada, de modo que o segundo quadro-chave destaca somente essa propriedade. Observação: A propriedade Keyframe lista os quadros 1 e 20 como 0 e 19 porque armazena os quadros-chave em uma matriz e as matrizes ActionScript são baseadas em zero. Para obter mais informações sobre matrizes, consulte o Capítulo 2. Como você pode ver, tudo o que você precisa para reproduzir a interpolação está incluído no XML, aqui armazenado na variável ballxml. As duas últimas linhas deste exemplo incluem a instanciação da classe Animator, passando o nome da instância de clipe de filme XML e de destino. Essa classe é responsável por reproduzir a animação, que ocorre na linha 24. Para ver o recurso funcionar, você pode remover a interpolação da linha de tempo, colocar um clipe de filme com o mesmo nome de instância no palco e testar seu filme. Nota: As propriedades copiadas e aplicadas neste processo são relativas ao clipe de filme existente, portanto, as atualizações de coordenadas x, por exemplo, começarão a partir do local existente do clipe de filme. Esse fluxo de trabalho não é obviamente algo que você pode transferir para o tempo de execução. No entanto, você pode fazer melhor. Com a interpolação inteira selecionada, você pode usar o comando Exportar Movimento XML encontrado no menu Comandos. Isso economiza apenas o Motion XML, sem o ActionScript que acompanha o fluxo de trabalho de cópia e colagem, em um arquivo externo. A partir daí, você pode criar um jogador Animator todos os seus próprios. O exemplo a seguir reproduz uma interpolação de guia de movimento que rastreia a palavra Flash no script, com um clipe de filme de bola. O guia de movimento original, que é o caminho que a classe Animator irá retraçar, pode ser visto na Figura 7-11. A figura mostra duas cópias da palavra porque, posteriormente, você pode usar o ActionScript para dimensionar a animação, localizando a palavra em qualquer tamanho. O arquivo XML necessário para recriar essa interpolação é bastante longo, portanto não pode ser reproduzido aqui. No entanto, o arquivo original, handwriting. fla. É com o código-fonte dos livros no site da web complementar ea animação já foi exportada para handwriting. xml para download fácil. Figura 7-11: As guias de movimento usadas para criar uma interpolação que é recriada com a classe Animator Este exemplo cria um player que controla a reprodução da animação original em um novo arquivo. Ele requer nada mais do que um clipe de filme para animar, eo componente Button, que bem usar para criar os botões do controlador. As primeiras 10 linhas do script importam as classes necessárias, declaram as variáveis ​​necessárias e criam e posicionam um clipe de filme bola da biblioteca, mas ainda não adicioná-lo à lista de exibição. O próximo segmento abrange o carregamento, e resposta a ele, do arquivo XML externo. Bem, cubra isso em maior detalhe, mas aqui está a essência da questão. Todos os URLs são tratados consistentemente, passando pela classe URLRequest. Essa classe captura todas as informações HTML, como tipos MIME, cabeçalhos e assim por diante. Nesse caso, precisamos apenas do caminho do arquivo de URL para passar para a classe URLLoader. As informações que a classe URLLoader carrega podem ser texto, dados binários brutos ou variáveis ​​codificadas por URL. Nesse caso, o documento XML é carregado como texto. O ouvinte de eventos na linha 13 reage quando essas informações foram completamente carregadas chamando a função xmlLoaded (). A função xmlLoaded () converte o texto carregado em XML e cria a instância da classe Animator, passando a instância do clipe de filme XML e de bola para a classe. A partir desta classe, o objeto de movimento pode fornecer informações sobre os dados XML que foram carregados. Como sabemos que a interpolação original inclui cor e posição, adicionamos a linha 17 para consultar a cor no primeiro quadro-chave de dados de movimento e definir a cor inicial do clipe de filme bola para essa mesma cor. Isso impede que o clipe de filme apareça em sua cor padrão e, em seguida, mudar abruptamente para a cor do primeiro quadro da animação, uma vez que ele começa.

No comments:

Post a Comment