![]() |
|
||||||||||
|
|||||
|
Имеется XML со структурой для дальнейшего прочтения во флеше. XML структура создается путем отправки пользователями сообщений. То есть во флеше это все выглядит как сообщение под сообщением ну как на любом форуме))
Проблема в том, что сообщения налезают друг на друга. Выровнять получается только путем указания точной цифры для всех сообщений сразу, но это плохо, так как одно сообщение от другого может содержать больший объем текста и налезать на следующее сообщение. Пример этого здесь |
|
|||||
|
_y.сообщения = сумме высот предыдущих сообщений
|
|
|||||
|
Пишу таким макаром
и нифига, может, что-то не то делаю??? |
|
|||||
|
попробуй _у сообщения умножать на разницу в высоте и на i где i порядковый номер сообщения..
|
|
|||||
|
|
|
|||||
|
это что ?
начнем пожалуй с простого 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
}
// итак чтобы получить нижнюю точку сообщения что нужно ? правильно взять верхнюю точку,
//предидущего сообщения и прибавить к ней, высоту того же предидущего сообщения, так мы получим
//точку, окончания предидущего сообщения, ну и далее указываем эту точку, как начало координат
//следущего сообщения
![]()
__________________
на каком языке вы пишите? а на каком нужно? |
|
|||||
|
Ребята спасибо за помощь, конечно, но все равно, ни чего не получается.
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;
}
}
}
![]() |
|
|||||
|
ну ты загнул
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. |
|
|||||
|
Mnilionic дай расцелую твой аватар!))
Спасибо это то, что нужно! “ХриГорий сеХодня ЗажиХаем!!” ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|