Просмотр полной версии : динамический тест
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>, то как это реализовать ....
Боюсь сказать нечто ламерское :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, читал и только потом сюда..
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 =
но так если параметров много, то выходит не много нетого...
если ли какая нить сокращенная форма...
я не силён в АС, но всё же попробуй tellTarget(), он зачастую работает там, где with() отказывается.
или прийдётся писать
eval("mc"+i).txt=...; или
this["mc"+i].txt=...
успехов :)
Оригинал написал(а) WD`
я не силён в АС, но всё же попробуй tellTarget(), он ...
Эх ... эволюция назад ...
2 nuran:
твои предложения?
да я о том, что tellTarget() давно пора забыть, устарело это
устареть устарело, но достойной замены нет.. пока..
Я вообще всегда прямые пути пишу. Это быстрее работает.
Nox Noctis
14.01.2004, 15:04
Оригинал написал(а) nuran
Я вообще всегда прямые пути пишу. Это быстрее работает. ошибаешься. в плеере 5 и 6 версии - обращение к клипам при помощи точечного синтаксиса НАМНОГО медленнее чем теллтаргет.
если интересно почему - http://flasm.sourceforge.net/#optimization
в седьмом плеере это наконец таки исправлено и не важно как писать - отрабатывает примерно с одинаковой скоростью.
я повторяю - до тех пор пока теллтаргет работает,
им стоит пользоваться когда это УДОБНО
например вместо того чтобы писать десять раз подряд
"this.a.b.c.какое_то_свойство"
я напишу tellTarget (this.a.b.c),
это сэкономит время написания и так будет удобнее.
но никто и не утверждал что им надо постоянно пользоваться.
просто раз уж от этого не страдает ни производительность и ничто другое - надо делать как удобно.
2 Nox, документы мы конечно почитаем как нибудь на досуге, но пока что ты меня на счёт прямых ссылок не переубедил. Даже и если там кто то, что то написал.
И удобность кстати - понятие растяжимое. Мне удобнее юзать прямые ссылки, вместо with().
p.s. Когда я был младенцем, и не знал что такое sourceforge.net, я решил его закачать, очень он мне понравился :D. На 10 гигабайте мне это кокретно надоело. После же, узнав что это такое я долго смеялся над своёй затеей.
Nox Noctis
15.01.2004, 13:27
Оригинал написал(а) nuran
не переубедил. Даже и если там кто то, что то написал.
дада, ты как всегда прав :)
если ньютон написал о законе всемирного тяготения, это ведь не доказывает что яблоки падают сверху вниз ! ни в коем случае !! :)))
Оригинал написал(а) nuran
И удобность кстати - понятие растяжимое. Мне удобнее юзать прямые ссылки, вместо with().а with() - это вообще зло. я про него и не говорил ничего вообще-то :)
а с байткодами спорить бесполезно.
сделай два варианта одного и того же - в первом случае обращение через точку, во втором случае обращение через теллтаргет.
декомпилим и видим что происходит.
да и скорость померить можно самому..
и я еще раз повторяю, "удобно" - это значит писать удобно :)
там не такая грандиозная разница в скорости (больше чем в десять раз в среднем. но сами интервалы так малы, что это нечасто реально сказывается)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.