Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не отрисовывается гистограмма (http://www.flasher.ru/forum/showthread.php?t=147582)

Castro 08.12.2010 15:02

Не отрисовывается гистограмма
 
Строю динамическую трёхколоночную гистограмму.
В классе 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;
 
                }
        }       
 
}



Часовой пояс GMT +4, время: 09:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.