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

Duvida Com Classe


§uiciDa£

Pergunta

Olá galera, eu montei essa classe aqui para um projeto q estou desenvolvendo

class Funções {
    var movie:MovieClip;
    var pontos:MovieClip = Array();
    var push:Boolean = false;
    var mcPrinc:MovieClip;
    function makeMut():Void {
        pontos[0].gotoAndPlay(2);
        pontos[1].gotoAndPlay(2);
        pontos[2].gotoAndPlay(2);
    }
    function Funções(mc:MovieClip) {
        movie = mc;
                
        pontos[0] = _root.bola1.duplicateMovieClip("Tbola1",_root.getNextHighestDepth());
        pontos[1] = _root.bola1.duplicateMovieClip("Tbola2",_root.getNextHighestDepth());
        pontos[2] = _root.bola1.duplicateMovieClip("Tbola3",_root.getNextHighestDepth());
        pontos[3] = _root.bola1.duplicateMovieClip("Tbola4",_root.getNextHighestDepth());
        pontos[4] = _root.bola1.duplicateMovieClip("Tbola5",_root.getNextHighestDepth());
        mcPrinc = _root.Tbola4
        
        makeMut();
    }
    function makeRectangle():Void {
        pontos[0]._x = movie._x;
        pontos[0]._y = movie._y;
        pontos[1]._x = movie._x+(movie._xscale/2);
        pontos[1]._y = movie._y;
        pontos[2]._x = movie._x;
        pontos[2]._y = movie._y+(movie._yscale/2);
        pontos[3]._x = movie._x+(movie._xscale/2);
        pontos[3]._y = movie._y+(movie._yscale/2);
    }
    function refresh() {
        _root.Tbola4.onRollOver = function() {
            _root.Tbola4.gotoAndPlay(3);
        };
        _root.Tbola4.onRollOut = function() {
            _root.Tbola4.gotoAndPlay(1);
        };
        _root.Tbola4.onMouseDown = function() {
            _root.funcoes.push = true;
        };
        _root.Tbola4.onMouseUp = function() {
            _root.funcoes.push = false;
        };
        movie.onMouseMove = function() {
            trace(_root.funcoes.push);
            trace(push);
            if (_root.funcoes.push) {
                trace("OK");
                var xN:Number;
                var yN:Number;
                xN = (_root._xmouse-_root.funcoes.movie._x)*2;
                yN = (_root._ymouse-_root.funcoes.movie._y)*2;
                if (xN>30 && xN <960) {
                    _root.funcoes.movie._xscale = xN;
                }
                if (yN>30 && yN < 600) {
                    _root.funcoes.movie._yscale = yN;
                }
            }
        };
    }
}

então, só que nela tme um pequeno problema nesta parte
movie.onMouseMove = function() {
            trace(_root.funcoes.push);
            trace(push);
            if (_root.funcoes.push) {
                trace("OK");
                var xN:Number;
                var yN:Number;
                xN = (_root._xmouse-_root.funcoes.movie._x)*2;
                yN = (_root._ymouse-_root.funcoes.movie._y)*2;
                if (xN>30 && xN <960) {
                    _root.funcoes.movie._xscale = xN;
                }
                if (yN>30 && yN < 600) {
                    _root.funcoes.movie._yscale = yN;
                }
            }
        };

estão vendo la a pate do :
trace(_root.funcoes.push);
            trace(push);
            if (_root.funcoes.push) {

eu gostaria de saber porque eu não posso usar apenas o 'push', e tenho q usar o '_root.funcoes.push' pra identificar, eu estou fazendo algo errado ??

eu acho que sim, mais sei lá =/

t+

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Cara, você não está acessando corretamente as propriedades.

Push é uma propriedade da classe Funções. Pra acessar ela você tem que usar _this.push. O _this indica que push está dentro da classe. Faça isso sempre que for acesar uma das propriedades da classe, como movie, pontos, push...

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, por que você está apontando pro objeto que você criou. Mas digamos que você utilizasse ele no _root e depois criasse outro objetos em outro lugar, digamos _root.outroMovieClip.funcoes, você não iria querer ter que mudar a classe, ou criar outra. Uma das maiores vantagens da orientação a objetos é a reutilização. Criar códigos genéricos que funcionem em diferentes situações.

Usando o this você sempre vai estar apontando pro objeto em sí. Como eu disse, o erro deve estar em outro lugar.

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
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...