Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

bdoweb

loadMovie incopatibilidade de ActionScript 1.0 e 2.0

Recommended Posts

Bom dia pessoal,seguinte tenho um player que funciona como uma tv. E como as stream de video são pessadas eu tinha um joginho do pacman no loading. Ai que está minha tv era action script 1.0 e como fiz algumas mudanças converti para actionScript 2.0. mas no action script 2.0 o joginho parou de funcionar.. ai o q eu pensei em fazer. Vou deixar o joginho em um outro movie e fazer o loadMovie dele. Pois é naum deu certo o jogo também naum funcionou. Já estou sem ideias de como resolver esse problema se puderem me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom o código é monstruoso axu q ninguem vai querer ler mas vou postar a linha do código onde dá pau no jogo ... o erro q exibe no consele é esse

**Error** Symbol=Game, layer=Layer 1, frame=14:Line 13: Operator '*' must be followed by an operand gotoAndStop (2+Number(4*/Game:status));

e o trecho do código é esse
if (Number(xv) == 1 and Number(yv) == 0) {		tellTarget ("/Game/f" add fanta) {			gotoAndStop (2+Number(4*/Game:status));		}	}
mas esse erro só aparece quando eu publico o filme em actionscript 2.0 quando publico o filme em action script 1.0 naum exibe erro nenhum

Compartilhar este post


Link para o post
Compartilhar em outros sites

poxa cara funcionou certinho valew ... mas teria como me dar umas dicas do q foi feito pois naum entendi nada ... vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

De nada, bdoweb.

Quanto à explicação, claro, vamos lá:

 

 

if (Number(xv) == 1 [b]and[/b] Number(yv) == 0) {		[b]tellTarget ("/Game/f" add fanta)[/b] {			gotoAndStop (2+Number(4*[b]/Game:status[/b]));   }}
Numerei pra facilitar. O problema todo é questão de compatibilidade nas versões de AS:

 

1. and - é um operador equivalente a && (o mesmo que "e" - uma condição "e" outra), sendo que da forma usada está depreciada. Prefira usar sempre a segunda opção (&&).

 

2. tellTarget ("/Game/f" add fanta) - aqui tem várias coisinhas. Primeiro o tellTarget não deve mais ser utilizado. Ele indica que você define um alvo para executar alguns métodos, ou seja, o que fica entre as chaves (semelhante a um loop, só que não faz o loop ;)). O "/Game/f" add fanta utiliza também uma forma de referência depreciada, indicando o caminho de um objeto. A barra "/" indica o _root, então ali é como referenciar _root.Game.f, ou seja, uma variável ou objeto no caminho _root.Game.f. Ainda ali, tem um add fanta, ou seja, o caminho é montado com essa variável fanta (é o que significa o add). Exemplo: se fanta for 1, o caminho será _root.Game.f1. Na sintaxe "correta" de ponto, o caminho então fica _root.Game["f" + fanta], pra fazer essa avaliação com colchetes ([]).

 

3. /Game:status - por último, tem a mesma referência depreciada de barras, que refere-se a um objeto Game na raiz do filme, ou melhor, ao seu filho status. O erro principal era por causa da multiplicação, pois era como estar precedendo um operador ("/") com outro ("*").

 

É isso! ;)

Deve ter ficado claro.

Se não ficou, dá um toque.

 

[]s

Anderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.