PDA

Просмотр полной версии : динамический тест


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
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:
твои предложения?

nuran
14.01.2004, 07:31
да я о том, что tellTarget() давно пора забыть, устарело это

WD`
14.01.2004, 10:50
устареть устарело, но достойной замены нет.. пока..

nuran
14.01.2004, 14:47
Я вообще всегда прямые пути пишу. Это быстрее работает.

Nox Noctis
14.01.2004, 15:04
Оригинал написал(а) nuran
Я вообще всегда прямые пути пишу. Это быстрее работает. ошибаешься. в плеере 5 и 6 версии - обращение к клипам при помощи точечного синтаксиса НАМНОГО медленнее чем теллтаргет.
если интересно почему - http://flasm.sourceforge.net/#optimization

в седьмом плеере это наконец таки исправлено и не важно как писать - отрабатывает примерно с одинаковой скоростью.

я повторяю - до тех пор пока теллтаргет работает,
им стоит пользоваться когда это УДОБНО
например вместо того чтобы писать десять раз подряд
"this.a.b.c.какое_то_свойство"
я напишу tellTarget (this.a.b.c),
это сэкономит время написания и так будет удобнее.

но никто и не утверждал что им надо постоянно пользоваться.
просто раз уж от этого не страдает ни производительность и ничто другое - надо делать как удобно.

nuran
15.01.2004, 11:33
2 Nox, документы мы конечно почитаем как нибудь на досуге, но пока что ты меня на счёт прямых ссылок не переубедил. Даже и если там кто то, что то написал.

И удобность кстати - понятие растяжимое. Мне удобнее юзать прямые ссылки, вместо with().

p.s. Когда я был младенцем, и не знал что такое sourceforge.net, я решил его закачать, очень он мне понравился :D. На 10 гигабайте мне это кокретно надоело. После же, узнав что это такое я долго смеялся над своёй затеей.

Nox Noctis
15.01.2004, 13:27
Оригинал написал(а) nuran
не переубедил. Даже и если там кто то, что то написал.
дада, ты как всегда прав :)
если ньютон написал о законе всемирного тяготения, это ведь не доказывает что яблоки падают сверху вниз ! ни в коем случае !! :)))
Оригинал написал(а) nuran
И удобность кстати - понятие растяжимое. Мне удобнее юзать прямые ссылки, вместо with().а with() - это вообще зло. я про него и не говорил ничего вообще-то :)

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

декомпилим и видим что происходит.
да и скорость померить можно самому..

и я еще раз повторяю, "удобно" - это значит писать удобно :)
там не такая грандиозная разница в скорости (больше чем в десять раз в среднем. но сами интервалы так малы, что это нечасто реально сказывается)