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

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

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
По умолчанию Выравнивание формы сообщений

Имеется XML со структурой для дальнейшего прочтения во флеше. XML структура создается путем отправки пользователями сообщений. То есть во флеше это все выглядит как сообщение под сообщением ну как на любом форуме))

Проблема в том, что сообщения налезают друг на друга. Выровнять получается только путем указания точной цифры для всех сообщений сразу, но это плохо, так как одно сообщение от другого может содержать больший объем текста и налезать на следующее сообщение.

Пример этого здесь
Вложения
Тип файла: rar table.rar (9.3 Кб, 52 просмотров)

Старый 08.10.2008, 18:52
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 2  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
_y.сообщения = сумме высот предыдущих сообщений

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Цитата:
Сообщение от Mnilionic Посмотреть сообщение
_y.сообщения = сумме высот предыдущих сообщений
Пишу таким макаром
Код:
this._y["mc"+y] = this["mc"+y]._y+this["mc"+y]._height
и нифига, может, что-то не то делаю???

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

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

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

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Код:
var h_cumulate = 0;

for(цкл по собщенияем){

	var mc = текущее сообщение; // создаём мувик с сообщением
	mc._y = h_cumulate; // выставляем y
	h_cumulate += mc._height; // суммируем высоты
}

Старый 08.10.2008, 23:53
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 6  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
Код:
this._y["mc"+y] = this["mc"+y]._y+this["mc"+y]._height
это что ?

начнем пожалуй с простого

Код:
for (var i=0;i<allMessage;i++) {  // - обьявляем цикл
     var message:MovieClip = containerMessage.crea...("message"+i,.... // создаем НОВОЕ сообщение 
     var j:Number = i-1 // берем предидущий индекс
     
message._y = containerMessage["message"+j]._y+containerMessage["message"+j]._height

}
// итак чтобы получить нижнюю точку сообщения что нужно ? правильно взять верхнюю точку, 
//предидущего сообщения и прибавить к ней, высоту того же предидущего сообщения, так мы получим 
//точку, окончания предидущего сообщения, ну и далее указываем эту точку, как начало координат 
//следущего сообщения
все просто, если подумать
__________________
на каком языке вы пишите?
а на каком нужно?

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Ребята спасибо за помощь, конечно, но все равно, ни чего не получается.
Код:
while (xmel != null) {
	nme = xmel.nodeName;
	if (nme != null) {
		if (nme == "m") {
			
            for (var i=0;i<xmel;i++) {  
     var message:MovieClip = this.attachMovie("mc","mc"+i,this.getNextHighestDepth()); 
     var j:Number = i-1  
message._y = ["mc"+j]._y+["mc"+j]._height
}		
			//Так было
			/*attachMovie("mc","mc"+y,100+y);
			this["mc"+y]._y = y*100*/		
	                          for (attr in xmel.attributes) {
				str = xmel.attributes[attr];
				if (attr == "nik") {
					this["mc"+y].nik = str;
				}
				if (attr == "texta") {
					this["mc"+y].texta = str;
				}
				if (attr == "texta2") {
					this["mc"+y].texta2 = str;
				}
				if (attr == "texta3") {
					this["mc"+y].texta3 = str;
				}
			}
			y++;
		}
	}
	if (xmel.firstChild != null) {
		xmel = xmel.firstChild;
	} else {
		if (xmel.nextSibling != null) {
			xmel = xmel.nextSibling;
		} else {
			xmel = xmel.parentNode;
			xmel = xmel.nextSibling;
		}
	}
}
Возможно, глупость написал, поправьте если что

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

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
ну ты загнул
Код:
xml = new XML();
xml.ignoreWhite = true;
xml.onLoad = loadXML;
xml.load("my_file.xml");

function loadXML(isloaded) {
	if (isloaded) done(this);
	else trace('not loaded');
}

function done(xml){
	
	var i = 0;
	var h_cumulate = 0;
	var node = xml.firstChild.firstChild;
	while (node) {
		if (node.nodeName == 'm') {
			var message = this.attachMovie('mc', 'mc' + i, this.getNextHighestDepth()); 
			message._y = h_cumulate;

			message.nik = node.attributes['nik'];
			message.texta = node.attributes['texta'];
			message.texta2 = node.attributes['texta2'];
			message.texta3 = node.attributes['texta3'];
			i++;
			h_cumulate += message._height;
		}
		// ->
		node = node.nextSibling;
	}
}


Последний раз редактировалось Mnilionic; 09.10.2008 в 13:16.
Старый 09.10.2008, 17:23
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 9  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Mnilionic дай расцелую твой аватар!))
Спасибо это то, что нужно!


“ХриГорий сеХодня ЗажиХаем!!”

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

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

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


 


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


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