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

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

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

Регистрация: Aug 2008
Адрес: Moscow
Сообщений: 73
Отправить сообщение для Flcn с помощью ICQ
По умолчанию Странное расположение элементов после addChild

Приветствую.
Есть небольшая проблема.
строю прототип графа.
элементы пока раскидываю хаотично.

в итоге у каждого элемента есть свои координаты и метод connect_to, на вход которому подаётся второй элемент (с которым соеденить).
в итоге делается line_to от этого элемента с тем которым соединить.

но в итоге линия рисуется только на половину (вернее по координатам рисуется она правильно, но элемент находится не там)
[IMG]http://************/uploads/100607/A5uJvJJTfg.jpg[/IMG]
Рисуем так из JSON строки
Код AS3:
	private function buildtree(tree):void{
			for (var i:Number=0; i<tree.length;i++){ 
				var el:MyCircle = new MyCircle(Math.round(100 + ((Math.random()*180)-90)),(i * 30) +100,20,1,0x0000FF,0x0000FF,this)
				el.draw();												
				objects[tree[i]["id"]] = el;							
				if (tree[i]["parent_id"] !== ""){
				    trace ("connect to X", objects[tree[i]["parent_id"]].x, objects[tree[i]["parent_id"]].y )
					el.connect_to(objects[tree[i]["parent_id"]])
				}				
			}
		}
сам MyCircle
Код AS3:
package 
{
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
 
	public class MyCircle extends Shape
	{
		private var place;
		public function MyCircle(x:Number,y:Number,r:Number,lineThickness:Number,lineColor:uint,fillColor:uint,elem)
		{
			graphics.lineStyle(lineThickness,lineColor);
			graphics.beginFill(fillColor,1);
			graphics.drawCircle(x,y,r);
			this.place = elem;		    
			this.x = x;
			this.y = y;			
		}
		public function connect_to(element)
		{
			trace(this.x,this.y);
			trace("newx",element.x," newY",element.y);
			graphics.moveTo(this.x,this.y);
			graphics.lineStyle(1);
			graphics.lineTo(element.x,element.y);
 
			//graphics.moveTo(element.x,element.y);
			//graphics.lineStyle(1);
			//graphics.lineTo(this.x+10,this.y+10);
 
 
		}
		public function draw()
		{
			place.addChild(this);
			/*var a:TextField = new TextField();
			a.text("x:"+ this.x + "y"+ this.y);
			a.x = this.x
			a.y = this.y
 
			a.autoSize = TextFieldAutoSize.LEFT*/
 
		}
		public function remove()
		{
			place.removeChild(this);
		}
 
	}
}
Вложения
Тип файла: zip app.zip (351.8 Кб, 33 просмотров)


Последний раз редактировалось Flcn; 07.06.2010 в 12:32.
Старый 07.06.2010, 12:21
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Увидел переменные и функции без типов - дальше читать не стал. Смысл разбитаться в чем-то, что работать все равно будет непонятно как?
__________________
Hell is the possibility of sanity

Старый 07.06.2010, 12:24
Flcn вне форума Посмотреть профиль Отправить личное сообщение для Flcn Найти все сообщения от Flcn
  № 3  
Ответить с цитированием
Flcn
 
Аватар для Flcn

Регистрация: Aug 2008
Адрес: Moscow
Сообщений: 73
Отправить сообщение для Flcn с помощью ICQ
Сначало всё с типами было.
убрал в процессе поиска решения проблемы.
разве дело может быть в типах?

Старый 07.06.2010, 12:32
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
У вас круг в 2*х, 2*у
либо drawCircle(0,0,r);
либо this.x = x; this.y = y; убрать (или в 0 поставить). Рекомендую первое, должно сразу помочь.

Старый 07.06.2010, 12:44
Flcn вне форума Посмотреть профиль Отправить личное сообщение для Flcn Найти все сообщения от Flcn
  № 5  
Ответить с цитированием
Flcn
 
Аватар для Flcn

Регистрация: Aug 2008
Адрес: Moscow
Сообщений: 73
Отправить сообщение для Flcn с помощью ICQ
-De-
спасибо)
это как понимаю из-за относительности координат?

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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