Получить переменную из внешнего класса - PullRequest
0 голосов
/ 16 июля 2009

Я использую внешний класс для рисования объекта в своем Flash-фильме, но мне нужно также получить некоторые переменные из класса.

Я хочу поместить переменную persPoints[0].x в переменную моего основного документа, например, newvar.

Это часть внешнего класса, которую я использую

class Shape {

function set2DTo3D():Void {
        var persPoints:Array = new Array();
        for (var i:Number = 0; i < this.pointsArray.length; i++) {
            persPoints[i] = new Object();
            this.perspectief = this.scaleValue / (this.scaleValue - this.pointsArray[i].z);
            persPoints[i].x = this.pointsArray[i].x * this.perspectief;
            persPoints[i].y = this.pointsArray[i].y * this.perspectief;
        }
        this.draw(persPoints);
    }
}

И как-то мне нужно будет передать эту переменную в мою onEnterFrame функцию моего .fla ниже.

var kubusMC:MovieClip = this.createEmptyMovieClip("kubusMC", 0);
kubusMC._x = Stage.width/2;//plaats de mc in het midden
kubusMC._y = Stage.height/2;

var kubus:Shape = new Shape(punten, kubusMC, 300, 1, 0x222222, 85);


this.onEnterFrame = function() {


}

Но как?

1 Ответ

0 голосов
/ 16 июля 2009

Единственное изменение, которое вам нужно сделать, насколько я вижу, - это переместить массив persPoints из функции set2DTo3D, чтобы сделать его членом вашего экземпляра класса. Вот так:

class Shape {

    var persPoints:Array = new Array();

    function set2DTo3D():Void 
    { 
        for (var i:Number = 0; i < this.pointsArray.length; i++) 
        { 
            persPoints[i] = new Object(); 
            this.perspectief = this.scaleValue / (this.scaleValue - this.pointsArray[i].z);
            persPoints[i].x = this.pointsArray[i].x * this.perspectief; 
            persPoints[i].y = this.pointsArray[i].y * this.perspectief; 
        } 

        this.draw(persPoints); 
    } 
}

Теперь, когда persPoints доступен в качестве члена экземпляра, вы можете получить к нему доступ в функции onEnterFrame:

var kubusMC:MovieClip = this.createEmptyMovieClip("kubusMC", 0); kubusMC._x = Stage.width/2;//plaats de mc in het midden kubusMC._y = Stage.height/2;

var kubus:Shape = new Shape(punten, kubusMC, 300, 1, 0x222222, 85);

this.onEnterFrame = function() 
{
    var value = kubus.persPoints[0].x;

    trace("x value of kubus.persPoints[0]: " + value);
}
...