![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2009
Сообщений: 68
|
Строю динамическую трёхколоночную гистограмму.
В классе Main вызываю класс histoMainClass, слинкованный с роликом самой гистограммы. В скобках параметры каждого столбца. Странная фигня. Когда пишу вот так как есть, то данные вроде приходят, но на графике ничего не отображается ни по одной из колонок Когда же я пишу setValues(4,5,6) в функции init() то всё ок и правильно рисуется. Что это может быть? Как я понял тут надо правильно дёргать функцию init() в частности. Как организовать всё это логично? Main histoMainClass 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; } } } Последний раз редактировалось Castro; 08.12.2010 в 15:05. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|