Не отрисовывается гистограмма
Строю динамическую трёхколоночную гистограмму.
В классе Main вызываю класс histoMainClass, слинкованный с роликом самой гистограммы. В скобках параметры каждого столбца.
Странная фигня. Когда пишу вот так как есть, то данные
Код:
trace('oper1_histo_column ' +this.oper1_histo_column)
вроде приходят, но на графике ничего не отображается ни по одной из колонок
Когда же я пишу setValues(4,5,6) в функции init() то всё ок и правильно рисуется.
Что это может быть?
Как я понял тут надо правильно дёргать функцию init() в частности. Как организовать всё это логично?
Main
Код AS3:
histoMainInst = new histoMainClass(2,3,4);
histoMainInst.init();
histoMainClass
Код AS3:
package {
import flash.display.MovieClip;
import flash.events.*;
import flash.text.TextField;
import flash.geom.ColorTransform;
import flash.display.Shape;
public class histoMainClass extends MovieClip {
public var oper1_mc:MovieClip;
public var oper3_mc:MovieClip;
public var oper2_mc:MovieClip;
public var column_label:TextField;
private var factor:Number = 0;
public var maxHeight:Number = 150;
private var positionOffset:Number = -21;
public var oper1_histo_column:Number;
public var oper2_histo_column:Number;
public var oper3_histo_column:Number;
public function histoMainClass(a:Number = 0, b:Number = 0, c:Number = 0) {
this.oper1_histo_column = a;
this.oper2_histo_column = b;
this.oper3_histo_column = c;
addEventListener(Event.ADDED_TO_STAGE, added);
}
private function added(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, added);
init();
}
function init(){
setValues(Number(this.oper1_histo_column),Number(this.oper3_histo_column),Number(this.oper2_histo_column));
//setValues(4,5,6)
trace('oper1_histo_column ' +this.oper1_histo_column)
}
function setValues(oper1_1:Number = 0,oper3_1:Number = 0,oper2_1:Number = 0){
var oper1:Number = Math.abs(oper1_1)
trace(oper1)
var oper3:Number = Math.abs(oper3_1)
trace(oper3)
var oper2:Number = Math.abs(oper2_1)
trace(oper2)
factor = Math.max(oper1,oper3,oper2)/maxHeight;
trace("factor "+factor)
trace("maxHeight "+maxHeight)
makeLabels(oper1,oper3,oper2);
oper1_mc.column_mc.height = oper1/this.factor;
oper3_mc.column_mc.height = oper3/this.factor;
oper2_mc.column_mc.height = oper2/this.factor;
trace('setValues oper1 '+oper1/this.factor);
trace('setValues oper3 '+oper3/this.factor);
trace('setValues oper2 '+oper2/this.factor);
}
function makeLabels(oper1_param:Number = 0,oper3_param:Number = 0,oper2_param:Number = 0){
oper1_mc.column_label.text = String(oper1_param);
oper3_mc.column_label.text = String(oper3_param);
oper2_mc.column_label.text = String(oper2_param);
oper1_mc.column_label.y = positionOffset - oper1_param/this.factor;
oper3_mc.column_label.y = positionOffset - oper3_param/this.factor;
oper2_mc.column_label.y = positionOffset - oper2_param/this.factor;
}
}
}
|