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

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

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

Регистрация: Jan 2006
Сообщений: 3
По умолчанию Массив текстовых данных из XML

Добрый день.

Загружаю данные текстовые из XML, и пытаюсь их выстроить по оси _y.
Проблема в том, что текстовые поля налазят друг на друга.

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

P.S. при загрузке изображений подобных проблем не возникает.

Код AS1/AS2:
 
for (var i = 1; i<=playLen; i++) {
 
		mcScrollThumb.mcContent.attachMovie("txtThumb","txtThumb"+i,i);
		var txtCont:MovieClip = mcScrollThumb.mcContent["txtThumb"+i];
		txtCont.index = i;
 
		txtCont._mc.txt.autoSize = true
 
		txtTitle = arrayPlayName[txtCont.index-1];
 
		txtCont._mc.txt.htmlText = txtTitle;
 
	txtCont._y = Math.floor(i-1)*txtCont._height+9
}

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

Регистрация: Feb 2008
Сообщений: 560
Все текстовые поля умещаются в одну строку?
И вы, вероятно, хотели написать:
Код:
txtCont._y = Math.floor((i-1)*(txtCont._height+9));
Корректнее было бы завести переменную, например curY, присвоить ей стартовое значение и делать примерно так:
Код:
txtCont._y = curY;
curY += txtCont._y + 9;

Старый 17.06.2010, 11:28
lexus_back вне форума Посмотреть профиль Отправить личное сообщение для lexus_back Найти все сообщения от lexus_back
  № 3  
Ответить с цитированием
lexus_back

Регистрация: Jan 2006
Сообщений: 3
rainbowrussia , спасибо за ваш ответ.
Но проблема не решена. Все текстовые поля, я пытаюсь выстроить в столбец, а не в строку. При трейсе:
Код:
trace(txtCont._height)
для каждого поля выводится своя высота, которая меняется в зависимости от количества текста. но при посторении столбца, данной строкой
Код:
txtCont._y = Math.floor((i-1)*(txtCont._height+9));
высота текстового поля, измененная не учитывается, а берется начальная.

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

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 lexus_back:
А что мешает накапливать значение общей высоты в какой-то переменной вроде:
Код AS1/AS2:
var totalHeight:Number = 0; 
for (var i:Number = 1; i <= playLen; i++)
{
	var txtCont:MovieClip = mcScrollThumb.mcContent.attachMovie("txtThumb", "txtThumb" + i, i);
	txtCont.index = i;
	txtCont._mc.txt.autoSize = true;
	txtCont._mc.txt.htmlText = arrayPlayName[txtCont.index - 1];
	txtCont._y = totalHeight;
	totalHeight += txtCont._height + 9;
}
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 17.06.2010, 16:06
lexus_back вне форума Посмотреть профиль Отправить личное сообщение для lexus_back Найти все сообщения от lexus_back
  № 5  
Ответить с цитированием
lexus_back

Регистрация: Jan 2006
Сообщений: 3
Всем огромное спасибо за советы. Решил задачу следующим образом:
Код AS1/AS2:
function arrayPlay() {
	var startY:Number = 0;
	var interval:Number = 9;
 
	for (var i = 1; i <= playLen; i++) {		
		var txtCont:MovieClip = mcScrollThumb.mcContent.attachMovie("txtThumb", "txtThumb"+i, i);
 
        txtCont.index = i;
        txtTitle = arrayPlayName[txtCont.index-1];
 
        txtCont._mc.txt.autoSize = true;
        txtCont._mc.txt.htmlText = txtTitle;
 
        txtCont._y = startY;
 
        startY += txtCont._height + interval;
}

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

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

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


 


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


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