Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.12.2010, 15:02
Castro вне форума Посмотреть профиль Отправить личное сообщение для Castro Найти все сообщения от Castro
  № 1  
Ответить с цитированием
Castro

Регистрация: Sep 2009
Сообщений: 68
По умолчанию Не отрисовывается гистограмма

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


Последний раз редактировалось Castro; 08.12.2010 в 15:05.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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