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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.11.2008, 21:16
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 11  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Думаю там xml такого типа:
Код:
<tree>
      <vetka pos="20"> //pos это позития с которой растёт ветка
           <vetka pos="10"></vetka>
           <vetka pos="5">
                <vetka pos="3"></vetka>
                <vetka pos="10"></vetka>              
           </vetka>     
      </vetka>
      <vetka pos="30">
      </vetka>
</tree>
А флэш читает xml, и по ходу рисует и добавляет ветки. Толщина ветки определяется тем, сколько у неё потомков (рекурсивный поиск). Если у ветки нету потомков к ней прикрепляется лист.
Между прочим в динамических структурах данных финальный элемент дерева так и называется - лист. Кстати во флеше они есть?

Старый 14.11.2008, 20:13
badun вне форума Посмотреть профиль Отправить личное сообщение для badun Найти все сообщения от badun
  № 12  
Ответить с цитированием
badun

Регистрация: Dec 2007
Сообщений: 269
Продолжу мысль. Там не одна xml, там многа-многа xmlей, потому что дерево каждый раз растет по другому. А флешка просто рандомно загружает одну из них. Возникает вопрос, что за редактор со страшным алгоритмом генерит дерево, и почему неразумный Скиннер не реализовал этот самый алгоритм во флеше, А? )

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

Регистрация: Jun 2006
Сообщений: 164
Цитата:
Сообщение от incvizitor Посмотреть сообщение
Думаю там xml такого типа:
Код:
<tree>
      <vetka pos="20"> //pos это позития с которой растёт ветка
           <vetka pos="10"></vetka>
           <vetka pos="5">
                <vetka pos="3"></vetka>
                <vetka pos="10"></vetka>              
           </vetka>     
      </vetka>
      <vetka pos="30">
      </vetka>
</tree>
А флэш читает xml, и по ходу рисует и добавляет ветки. Толщина ветки определяется тем, сколько у неё потомков (рекурсивный поиск). Если у ветки нету потомков к ней прикрепляется лист.
Между прочим в динамических структурах данных финальный элемент дерева так и называется - лист. Кстати во флеше они есть?

))) Нет Вы что, это слишком просто, на самом деле там данные с кластера серверов собираются, каждый из которых генерирует по веточке. Так веточка к веточке и дерево получается...

Старый 15.11.2008, 03:21
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 14  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
what is server claster???

Старый 15.11.2008, 04:41
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 15  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Несколько серверов, работающих как одно целое, грубо говоря.

insected отпустил сарказм, не обращайте внимания

По теме: у скиннера явно не на XML, потому что каждый раз генерируется все по-разному, да и с ума сойдешь описывать все руками.
__________________
Дело не в тебе

Старый 15.11.2008, 11:07
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 16  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Чета мне сдается, что продукция этой фирмы прекрасно совместима с 6м плеером. (Это я к выбору раздельчика)
ХМЛ там не пользуют, да и шо оно даст?
Как следует из текста на сайте, вся фишка в наличии и разработчиков компании доступа к библиотеке Application Elements.
Кстати, зовут поучаствовать...


Последний раз редактировалось aksios; 15.11.2008 в 11:12.
Старый 15.11.2008, 12:02
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 17  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
http://www.demiart.ru/forum/index.php?showtopic=61956
Можно и на AS3
Код:
package {
	import flash.display.*;
	import flash.events.*;
	dynamic public class  TreeDoc extends Sprite{ ;//класс наследник спрайта
	public var branchSize:Number;
	public var branchCounter:int;
	public var i:int;
	public function TreeDoc() {//конструктор
		// Параметры дерева
		branchSize = 100;
		branchCounter = 0;
		new Branch(this, 300,300);
	}
	public function newBranch(_x:int, _y:int) {
		branchSize = branchSize-0.1;
		if (branchSize<10) branchSize =10;
		for (i=0;i<Math.random()*40;i++)
		if (branchCounter<100) new Branch(this, _x, _y);		
	}
}
}
import flash.display.*;
import flash.events.*;
class Branch extends MovieClip {
var doc:TreeDoc;
var endPosAr:Array;
var rad:Number, cosA:Number, sinA:Number;
var timeP:Array;
function Branch(_doc:TreeDoc,_x:int, _y:int) {
	doc = _doc;
	doc.addChild(this);
	x = _x;
	y = _y;
	endPosAr = [0,0];
	timeP = [0,0];
	addEventListener(Event.ENTER_FRAME, enterFr);
}
function enterFr(evt:Event) {
	graphics.lineStyle(doc.branchSize/20, 0x000000);//рисуем линию
	graphics.moveTo(0, 0);// Устанавливаем начальные кординаты
	// Если это не ствол, изменить угол и размер ветви
	endPosAr=[doc.branchSize,0];
	rotateForCentre([0, 0],endPosAr,Math.random()*180);
	graphics.lineTo(endPosAr[0], endPosAr[1]);
	this.removeEventListener(Event.ENTER_FRAME, enterFr);
	doc.newBranch(x+endPosAr[0], y+endPosAr[1]);	
	doc.branchCounter++;
}
function rotateForCentre(_centrePoint:Array, _objectPoint:Array, _grad:int) {
			rad = (_grad* (Math.PI/180));

			cosA = Math.cos(rad);
			sinA = Math.sin(rad);
						//trace(_objectPoint[0])
			timeP[0] = _objectPoint[0] - _centrePoint[0];//x
			timeP[1] =  _objectPoint[1] - _centrePoint[1];//y
			
			_objectPoint[0] =  _centrePoint[0] + 
			(timeP[0]*cosA + timeP[1]*sinA);

			_objectPoint[1] =  _centrePoint[1] + 
			(-timeP[0]*sinA + timeP[1]*cosA);
			
		}


}


Последний раз редактировалось Alex Lexcuk; 15.11.2008 в 13:43.
Старый 15.11.2008, 14:24
Пилотик вне форума Посмотреть профиль Отправить личное сообщение для Пилотик Найти все сообщения от Пилотик
  № 18  
Ответить с цитированием
Пилотик

Регистрация: Sep 2008
Сообщений: 11
извините за нубство, но вот ясохранил флешку с сайта и она работает на компе, значит наверно без xml все же? )

Старый 15.11.2008, 17:16
insected вне форума Посмотреть профиль Отправить личное сообщение для insected Найти все сообщения от insected
  № 19  
Ответить с цитированием
insected
 
Аватар для insected

Регистрация: Jun 2006
Сообщений: 164
Цитата:
Сообщение от Пилотик Посмотреть сообщение
извините за нубство, но вот ясохранил флешку с сайта и она работает на компе, значит наверно без xml все же? )
Нет там xml ) Скачайте исходники да посмотрите, что гадать то на кофейной гуще ? )

Старый 15.11.2008, 18:19
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 20  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Схожесть 99%, только по клику не обновляется, чтоб обновить надо нажать на кнопку браузера обновить.
http://murmadillo.tut.su/fla/TreeDoc.swf
Код:
package {
	import flash.display.*;
	import flash.events.*;
	dynamic public class  TreeDoc extends MovieClip{ ;//класс наследник спрайта
	public var branchSize:Number;
	public var branchCounter:int;
	public var i:int;
	public var flowersesArr:Array;
	var sp:Sprite;
	var j:int;
	public function TreeDoc() {//конструктор
		// Параметры дерева
		branchSize = 10;
		branchCounter = 0;
		flowersesArr = [];
		new Branch(this, 100,350);
	}
	public function newBranch(_x:int, _y:int, _r:int) {
		branchSize = branchSize-0.015;
		branchCounter++;
		if (branchSize<1) {
			branchSize =3;
		}//for (i=0;i<Math.random()*40;i++)
		//if (branchCounter<1000) new Branch(this, _x, _y);
		//trace(branchSize);
		if (branchCounter%int(Math.random()*100)==0||branchCounter==21) {
			for (i=0; i<3; i++) {
				new Branch(this, _x, _y, 360-Math.random()*720);
				//trace('!'+branchCounter);
			}
		}
		if (branchCounter<2000) {
			new Branch(this, _x, _y, _r);
		}
		if (branchCounter>=2000) {
			sp = new Sprite();
			addChild(sp);
			sp.graphics.beginFill(0x00ff00);
			i=flowersesArr.length;

			addEventListener(Event.ENTER_FRAME, enterFr);
		}
	}
	function enterFr(evt:Event) {
		for (j=0; j<10; j++) {
			i = i-Math.random()*4;
			if (i>0) {
				sp.graphics.beginFill(0x0000ff,Math.random());
				sp.graphics.drawCircle(flowersesArr[i][0],flowersesArr[i][1], 1+Math.random()*2);
				sp.graphics.endFill();
			}
		}
	}
}
}
import flash.display.*;
import flash.events.*;
class Branch extends MovieClip {
var doc:TreeDoc;
var endPosAr:Array;
var rad:Number, cosA:Number, sinA:Number;
var timeP:Array;
var r:int;
var color:uint;
function Branch(_doc:TreeDoc,_x:int, _y:int, _r:int = 1) {
	doc = _doc;
	doc.addChild(this);
	x = _x;
	y = _y;
	r = _r;
	endPosAr = [0,0];
	timeP = [0,0];
	addEventListener(Event.ENTER_FRAME, enterFr);
}
function enterFr(evt:Event) {
	color = ((uint(doc.branchCounter*255/500) & 0xFF) << 16) | ((uint(30) & 0xFF) << 8) | (uint(doc.branchCounter*255/2000) & 0xFF);
	if (doc.branchSize<3) {
		graphics.lineStyle(doc.branchSize, color, 0.5);
	} else {
	trace(color.toString(16));
		graphics.lineStyle(doc.branchSize, color, 0.9);
	}
	graphics.moveTo(0, 0);// Устанавливаем начальные кординаты
	// Если это не ствол, изменить угол и размер ветви
	endPosAr=[doc.branchSize*2,0];
	rotateForCentre([0, 0],endPosAr,r++);
	doc.flowersesArr.push([endPosAr[0]+x, endPosAr[1]+y]);
	graphics.lineTo(endPosAr[0], endPosAr[1]);
	this.removeEventListener(Event.ENTER_FRAME, enterFr);
	doc.newBranch(x+endPosAr[0], y+endPosAr[1], r+(8-Math.random()*8));
	//doc.branchCounter++;
}
function rotateForCentre(_centrePoint:Array, _objectPoint:Array, _grad:int) {
	rad = (_grad* (Math.PI/180));

	cosA = Math.cos(rad);
	sinA = Math.sin(rad);
	//trace(_objectPoint[0])
	timeP[0] = _objectPoint[0] - _centrePoint[0];//x
	timeP[1] =  _objectPoint[1] - _centrePoint[1];//y

	_objectPoint[0] =  _centrePoint[0] + 
	(timeP[0]*cosA + timeP[1]*sinA);

	_objectPoint[1] =  _centrePoint[1] + 
	(-timeP[0]*sinA + timeP[1]*cosA);

}


}

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

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

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


 


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


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