2009-07-16 3 views
0

Я использую внешний класс для рисования объекта в своем 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() { 


} 

Но как?

ответ

0

Единственное изменение, которое вы должны сделать, из того, что я вижу, заключается в перемещении массива 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); 
} 
+0

Что я могу сказать, спасибо тысячу раз :) – 2009-07-16 19:12:43

Смежные вопросы