проблема в определении переменной для другого класса в Action Script 3 - PullRequest
0 голосов
/ 19 июня 2011

У меня есть 2 класса Класс A, класс B.

У меня есть переменная в классе a DEGREE.

package com.sample
{ 
    //CLASS A
    import flash.display.MovieClip; 
    import flash.events.MouseEvent; 
    import flash.display.Stage; 
    import flash.events.Event; 
    import flash.display.Sprite; 
    import flash.sampler.StackFrame; 

    public class classA extends MovieClip
    { 
        public var DEGREE:Number = 0; 
        public function classA() 
        {
            addEventListener(MouseEvent.MOUSE_UP , OnMouseUp);
        }

        function OnMouseUp(evt:MouseEvent):void
        {
            DEGREE = this.flashshow.rotation;
        }
    }
}

, когда определяется класс a в классе b с подчеркиванием:

класс B:

public var myClassA:classA;

myClassA = new classA();

, но когда я получаю DEGREE в классе b

trace(myClassA.DEGREE) ; 

, он равен ZER0 нет 30.

package com.sample
{
    import flash.display.MovieClip; 
    import flash.display.Stage; 
    import flash.events.Event; 
    import flash.events.MouseEvent; 
    import com.MrMind.flashShow;

    public class classB extends MovieClip
    {
        public var mmm:classA = new classA(); 
        public function classB () : void
        {
            addEventListener(MouseEvent.CLICK , mee);
        }

        public function mee(evt:MouseEvent):void 
        {
            trace(mmm.DEGREE); // OUT PUT ZER0
        }
    }
} 

кто-нибудь может помочь?

Ответы [ 2 ]

1 голос
/ 19 июня 2011

вы можете использовать статические переменные, если хотите получить доступ к их значениям вне класса без создания экземпляра класса.public static var является глобальным, и некоторые пуристы могут не одобрить его использование, поскольку они имеют тенденцию ослаблять парадигму объектно-ориентированного программирования, поэтому используйте их экономно и осторожно.1005 *

Класс A:

package
{
//Class
public class ClassA
    {
    //Static Variables
    public static var firstDegree:uint = 30;

    //Variables
    public var secondDegree:uint = 40;

    //Constructor
    public function ClassA()
        {

        }
    }
}

Выход:

30
100
40
50
0 голосов
/ 19 июня 2011

Привет, я вижу, что ваша переменная изменена на mouseUp, и ваш след происходит при клике. Это может быть проблемой. Вы можете попытаться изменить значение DEGREE на mouseDown и отследить его на mouseUp. Он должен вернуть измененное значение. Я думаю, что событие click происходит до события mouseUp.

Удачи, марко

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...