Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Várias funções numa Classe


Dc Spoc

Pergunta

Bom dia pessoal!

O meu problema é o seguinte, estou começando a trabalhar com o AS3 usando classes e surgiu um pequeno problema: criei uma classe que nela contém um preload e um código para acionar uns movieclips. Só que o preload funciona belezinha, mas a função para manipular os movieclips que estão no palco não funciona

O erro que dá é o:

TypeError: Error #1009: Cannot access a property or method of a null object reference.

O código que estou usando é esse:

(os objetos box1, box2, box3 e box4, estão instanciados no palco)

package

{

import flash.display.MovieClip;

import flash.events.Event;

import flash.events.MouseEvent;

import flash.events.ProgressEvent;

import caurina.transitions.Tweener;

public class MainPreload extends MovieClip

{

public var numBytesTotal:Number;

public var numBytesLoaded:Number;

public var percentual:String;

public var numPercentage:Number;

public function MainPreload()

{

stop();

addEventListener(Event.ENTER_FRAME, onLoading);

addEventListener(Event.COMPLETE, acoesBoxs);

acoesBoxs();

}

public function onLoading(event:Event)

{

var numBytesTotal = stage.loaderInfo.bytesTotal;

var numBytesLoaded = stage.loaderInfo.bytesLoaded;

var numPercentage = Math.round(numBytesLoaded*100/numBytesTotal);

if (numBytesLoaded >= numBytesTotal) {

gotoAndStop(2);

removeEventListener(Event.ENTER_FRAME, onLoading);

}

else

{

percentual = numPercentage + "%";

mcAnimation.percent.text = percentual;

}

}

public function acoesBoxs()

{

trace("teste");

box1.addEventListener(MouseEvent.MOUSE_OVER, vai);

box1.addEventListener(MouseEvent.MOUSE_OUT, vem);

box2.addEventListener(MouseEvent.MOUSE_OVER, vai);

box2.addEventListener(MouseEvent.MOUSE_OUT, vem);

box3.addEventListener(MouseEvent.MOUSE_OVER, vai);

box3.addEventListener(MouseEvent.MOUSE_OUT, vem);

box4.addEventListener(MouseEvent.MOUSE_OVER, vai);

box4.addEventListener(MouseEvent.MOUSE_OUT, vem);

function vai(e:MouseEvent):void {

e.target.gotoAndPlay(2);

addChild(MovieClip(e.target));

if (e.target=="[object box1_1]") {

box2.alpha=1;

Tweener.addTween(box2, {alpha:0, time:1});

box3.alpha=1;

Tweener.addTween(box3, {alpha:0, time:1});

box4.alpha=1;

Tweener.addTween(box4, {alpha:0, time:1});

}

if (e.target=="[object box2_2]") {

box1.alpha=1;

Tweener.addTween(box1, {alpha:0, time:1});

box3.alpha=1;

Tweener.addTween(box3, {alpha:0, time:1});

box4.alpha=1;

Tweener.addTween(box4, {alpha:0, time:1});

}

if (e.target=="[object box3_3]") {

box2.alpha=1;

Tweener.addTween(box2, {alpha:0, time:1});

box1.alpha=1;

Tweener.addTween(box1, {alpha:0, time:1});

box4.alpha=1;

Tweener.addTween(box4, {alpha:0, time:1});

}

if (e.target=="[object box4_4]") {

box1.alpha=1;

Tweener.addTween(box1, {alpha:0, time:1});

box3.alpha=1;

Tweener.addTween(box3, {alpha:0, time:1});

box2.alpha=1;

Tweener.addTween(box2, {alpha:0, time:1});

}

}

function vem(e:MouseEvent):void {

e.target.gotoAndPlay(11);

if (e.target=="[object box1_1]") {

box2.alpha=0;

Tweener.addTween(box2, {alpha:1, time:1});

box3.alpha=0;

Tweener.addTween(box3, {alpha:1, time:1});

box4.alpha=0;

Tweener.addTween(box4, {alpha:1, time:1});

}

if (e.target=="[object box2_2]") {

box1.alpha=0;

Tweener.addTween(box1, {alpha:1, time:1});

box3.alpha=0;

Tweener.addTween(box3, {alpha:1, time:1});

box4.alpha=0;

Tweener.addTween(box4, {alpha:1, time:1});

}

if (e.target=="[object box3_3]") {

box2.alpha=0;

Tweener.addTween(box2, {alpha:1, time:1});

box1.alpha=0;

Tweener.addTween(box1, {alpha:1, time:1});

box4.alpha=0;

Tweener.addTween(box4, {alpha:1, time:1});

}

if (e.target=="[object box4_4]") {

box1.alpha = 0;

Tweener.addTween(box1, {alpha:1, time:1});

box2.alpha=0;

Tweener.addTween(box2, {alpha:1, time:1});

box3.alpha=0;

Tweener.addTween(box3, {alpha:1, time:1});

}

}

}

}

}

Alguém pode me dar uma luz!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Cara eu não sei mexer com AS3 :/

Mas o erro diz que você está tentando pegar a propriedade de um objeto nulo.

Vai tirando umas partes do seu código para tentar descobrir que linha está o erro.

Ai posta ae que eu tento te dar uma força :)

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, amigo! Vou fazer isso.

O que está fogo é que seu colocar apenas o código do preload, funciona. E se eu colocar apenas o outro código funciona também, ou seja, as animações funcionam normalmente.

Editado por Dc Spoc
Link para o comentário
Compartilhar em outros sites

  • 0

Acho que resolvi o problema.

O que tava pegando era que eu estava chamando os itens "BOX1, BOX2 BOX3 e BOX4" no meu código só que eles ainda não "existiam". E para torná-los visíveis no código eu tive que fazer a declaração de cada um deles (lembrando que para usar desta maneira eu tive que usar o linkage na biblioteca).

public var mcbox1:Box1 = new Box1;

public var mcbox2:Box2 = new Box2;

public var mcbox3:Box3 = new Box3;

public var mcbox4:Box4 = new Box4;

tirá-los do palco e carrega-los via programação:

addChild(mcLoad);

mcLoad.x = 274.8;

mcLoad.y = 224.7;

Editado por Dc Spoc
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...