Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   динамический тест (http://www.flasher.ru/forum/showthread.php?t=53426)

bit_studio 07.01.2004 11:49

динамический тест
 
хочу сделать что - то типа, новостного блока..

новости загружаются через объект LoadVars (), вот все грузится, сначала была такая идея
* после загрузки данный (<newsX_data><newsX_body>)
* есть мувик news нем есть news_item1, внутри которого есть
два динамический текстовых блока, в которые и заносятся
news_item1.data.text и news_item1.body.text
вот так мысль была такая, что там типа цикл который в
зависимости ок кол-ва новостей, (n-1) раз дублирует этот
news_item1 + меняет 1 на n

Вот но я наивно думал, что если есть динамический текст с
фиксированной шириной, что он будет динамически
расширятся в длину в зависимости от текста....

просто получается большие растояния между новостями...

как можно это обойти, создавать скриптом текстовый блок, взависимости от длины строки в <newsX_body>, то как это реализовать ....

Darina 07.01.2004 13:56

Боюсь сказать нечто ламерское :rolleyes: , но у меня когда-то такое было, и без изврата не обошлось.
Я считала сколько символов в строке динамического поля
Потом делила кол-во символов первой новости на ото что получила ..
Ну, короче, вычисляла сколько строк занимает первая новость, умножала на высоту строки и соответственно расчитывала позицию следующего динамического поля.
....Надеюсь, есть более нормальные варианты :)

bit_studio 08.01.2004 12:01

Если такое изврат то это еще куда ни шло...
Хотя, еу допустим я знаю длину переменной, знаю ширину динамического поля, ну поделю я это, получим кол-во строк, но что делать с переносами? добавляит по дефолту еще строку?

ilya_cat 08.01.2004 14:23

А не проще ли поставить каждому текстовому полю свойство autoSize='left' и multiLine и отсчитывать положение следующего через _height?

(кусок из переведенного хелпа)

Цитата:

Свойство autoSize управляет автоматическим изменением размеров и выравнивания в текстовых полях. При присвоении значения "none" текстовое поле ведет себя как обычно и не изменяет размеры и выравнивание текста.

Если значение этого свойства равно "left", расширяет или сжимает свои правую и нижнюю стороны, чтобы содержащийся в нем текст заполнил все пространство поля. Левая и верхняя стороны поля остаются в том же положении.

Если значение этого свойства равно "center", текстовое поле изменяет свой размер, но горизонтальный центр поля остается на одном и том же месте (на линии начальной позиции этого центра). Нижняя сторона поля расширяется, чтобы вместить весь текст.

Если значение этого свойства равно "right", текстовое поле изменяет свой размер, но левая и верхняя стороны раширяются или сжимаются.

Присвоение свойству autoSize значения true аналогично присвоению значения "left", а значения false аналогично "none".

И вообще - RTFM!!! (не камасутра)

Рекомендую прочесть ВЕСЬ хелп от флеша, как книжку. Не знаете буржуйского - читайте перевод - для шестерки он давно уже существует на vmstudio. После прочтения пять из семи вопросов отпадут за ненадобностью.

bit_studio 08.01.2004 14:39

ты не понял, у меня есть динамическое поле - оно должно быть фиксированной ширины... должна изменяться только кол-во строк....

_у меня расчет положения идет как раз по свойству _height, а оно выдает нето, то есть выдает полную длину (по у) диню поля....

насчет RTFM - блин читали а то а другое и на английском и на русском... есть книга Flash MX - Владимира Дронова с полным reference, читал и только потом сюда..

WD` 08.01.2004 15:07

Вложений: 1
bit_studio:
у меня почемуто и длина и ширина мува представляются по горизонтали.. :p
думаю это то что ты имел ввиду (аттач).. :rolleyes:

2 Darina:
всё правильно делала.. за исключением некоторых лишних действий :)

bit_studio 10.01.2004 02:16

WD`

Спасибо, помогло :)

но у меня к тебе другой вопрос:

я например делаю дубликат объекта, вот потом хочу поменять
некоторые переменные - вот раньше я делал с помощью

tellTarget ("news" + i) {
}

в MX же он deprecated, рекомендуется использовать
with () {} Но если писать

with ("news" + i) это не работает
можно и через eval ()

eval ("news" + i).n_data.text =

но так если параметров много, то выходит не много нетого...
если ли какая нить сокращенная форма...

WD` 10.01.2004 16:18

я не силён в АС, но всё же попробуй tellTarget(), он зачастую работает там, где with() отказывается.
или прийдётся писать
eval("mc"+i).txt=...; или
this["mc"+i].txt=...
успехов :)

nuran 12.01.2004 07:56

Цитата:

Оригинал написал(а) WD`
я не силён в АС, но всё же попробуй tellTarget(), он ...
Эх ... эволюция назад ...

WD` 13.01.2004 02:08

2 nuran:
твои предложения?


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

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