PDA

Просмотр полной версии : [MX] лажа с динамическим полем...возможно ли??


beshan
30.09.2002, 14:41
в петерке динам поле можно было создать инструментом TEXT, в мх таже операция ваще не работает (текст не выводит, по имени не обращается)....в хэлпе к мх этот метод даже не указан.

вопрос: как без экшина создать работающее динамич текстовое поле??


п.с.
на хера было ваще в текст опшин ставить пункт динам текст :-(((

TTS
30.09.2002, 15:27
Внимательнее... :o
У динамического поля кроме имени переменной есть Instance Name. Название переменной вводится в рядом с кнопкой Character.

beshan
30.09.2002, 19:02
2TTS:
ты меня не совсем понял, или я неправильно объянил...... давай по порядку:

делаем динам поле, через скрипт задаем ему значение: inctanceName.text+="text1";
varName+="text2";
оба варианта работают нормально, теперь подходим к моей проблеме ближе......
вводим текст напрямую в текстовое поле, паблишим под 5 - все нормально, паблишим под шестерку - в зависимости от шрифта текст либо совсем пропадает, либо становиться бякой даже в латинской расскладке, при попытки оттрейсить данное поле получаем туже бяку что и в поле.
проверяли этот прикол на лицензионном флэшэ - таже фигня :-(

можно конечно в каждое поле экшином перезагнать весь текст.......но где гарантия что он потом темиже вилами не вылезет??

Nox Noctis
30.09.2002, 21:26
эмм... есть такое сильное подозрение...


System.useCodePage = true; :)

beshan
01.10.2002, 13:06
2Nox Noctis:
спасибо за вариант....но толи лыжи не едут, толи руки кривые... что-то ваше на юникод не реагирует, тоесть, если шрифт с юникодом - без проблем, а если без - квадраты.

народ, может еще какие-то варианты подкините, кстати э тут флашник заатачил, посмотрите, может это глючит у меня система???

TTS
01.10.2002, 21:44
Конечно не едут...
Первый раз такой фонт вижу - OfficinaSansD. Ембедить надо. :o

beshan
02.10.2002, 12:06
2TTS
ембедил я официну - не помогло. если подключать через библиотеку вылазит таймс. да там не в фонте дело, даже тахому и ту калечит.

я тут еще приколов накопал, может кто-то мопожет разрулить:
1. в динам поле пробелы невлазящие в строку переносит на новую сточку
2. к динам полю в кнопке нельзя обратится
3. шрифт непривязывается к полю, даже если библиотеку и указать имя через формат или фонтовое меню
4. а как вам такой прикол
container._alpha+=1; // прибавляет ровно 0.78125

или вот так

peremen=int(container._alpha+1);
container._alpha=peremen; // зависает воллшебное число 0.78125

TTS
02.10.2002, 19:08
1. Действительно, прикол. Тут уже где-то один товарищ мучается... :p
2. А в кнопке вообще ни к чему обратиться нельзя, по-моему. :(
3. У меня всё привязывается. Может ты забыл Linkage сделать? Или формат к имени переменной применяешь... :rolleyes:
4. А оно и изначально не целое... :D
5. А ещё у меня при скроллинге символы из начала одной строки в конец предыдущей переползают (или наоборот, я не помню) :mad:

camilla
03.10.2002, 22:31
2. к динам полю в кнопке нельзя обратится

У меня получается только фиксированный текст присвоить.
Типа:
text="123" - выводит без проблем
text=d, где d="123" - никак

если у кого есть идея как это побороть...

TTS
04.10.2002, 00:56
2camilla: А можно исходник или скриптик, как вы это делаете?

camilla
04.10.2002, 02:09
При нажатии кнопки главного меню происходит генерация элементов подменю, каждый из которых включает в себя динамическое поле и кнопку. В каждый элемент передается стринговая переменная itemtext (название подменю). Нужно, чтобы при нажатии на элемент подменю в динамическое поле основной сцены (submtitle) выводилoсь значение этой самой itemtext.

on (release) {
unloadMovie("/em");
file = itemtext add ".swf";
loadMovie(file, "/em");
tellTarget ("/submtitle") {
text = itemtext;
}
}

P.S. Со мной можно на "ты", и если что не так, то просьба не смеяться над начинающим флэшером :)

sergwizard
04.10.2002, 04:54
2beshan
Посмотрел твой text.fla и увидел только одну проблему: используешь нестандартный шрифт и не имбедишь его. Или имбедь его, или используй нормальный шрифт. А динамические поля в МХ работают на "ура", выпрями руки – и лыжи поедут. Смотри свой же исходник, только немного дополненный.

TTS
04.10.2002, 05:20
Тааак. unloadMovie надо убрать, это видно невооружённым глазом.
Переменная itemtext наверняка имеет значение undefined, т.к. в кнопке нельзя создать никаких переменных (проверялось опытным путём). Так что либо создавай массив переменных в другом месте, либо меняй кнопки на мувы.
А насчёт сабжа №2, - ты его неправильно поняла: из кнопочного скрипта можно обратиться к чему угодно (за исключением..), но нельзя обратиться ни к чему тому, что сидит в самой кнопке, т.е. выражение типа button.itemtext="Yo, mama!" не работает. :)

camilla
04.10.2002, 12:23
Все равно не могу понять, почему так не работает, ведь переменную file вычисляет правильно и правильный мувик загружает...
И itemtext имеет правильное значение, проверяла.
Но попробую создать массив переменных. Спасибо!

beshan
04.10.2002, 12:45
2 sergwizard
1. какой смысл имбедить стандартный шрифт если он есть у каждого??? и приэтом свф увеличивать в 3 раза??
2. если бы я юзал стандартный шрифт то я бы об этом приколе и неузнал бы...... посмотрел я твой флашник, при замене стандартных шрифтов на нестандартные - появился новый прикол, квадраты пропали, но вместо моего шрифта вылазит ариал :-(( на фиг мне ариал, если мне нужна официна.....

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

п.с. видимо прейдется тупо все тексты загонять через скрипт :-((

beshan
04.10.2002, 12:54
2 sergwizard
забыл поблагодарить за вариант :-))) пасибки

2 camilla
по пробуй оттрейсить свою переменную перед присвоением текстовому полю
trace (itemtext);

если значение отсутсвует, значит неправильно прописан путь
ну если значение правильное, то попробуй этой переменной присвоить стринговое значение (у меня такой прикол был с хмл):
itemtext = itemtext + "";
text = itemtext;

TTS
04.10.2002, 20:27
Всё-таки с исходником проще было бы. Или там какое-то ноу-хау? Не надо стесняться.

sergwizard
04.10.2002, 21:27
2beshan
проблема осталась не решенной: при вводе текста в динам поле лезут квадраты, ну если вписывать значение через скрипт - все ок.

п.с. видимо прейдется тупо все тексты загонять через скрипт :-((
Я не понимаю, о какой ты проблеме говоришь? Что значит "при вводе текста в динам поле лезут квадраты"? ВВОДЯТ текст в поле input text. Но, даже если ты хочешь ввести первоначальный текст в dynamic text, ничто этому помешать не может. В моем примере, первая фраза в динам тексте вбита напрямую. Все остальные – через скрипт на кнопке. Можно подгрузить текст из внешнего файла. И никаких квадратиков, и никаких проблем. Ты можешь вводить свой текст в input text. И будет мой шрифт (нестандартный).

sergwizard
04.10.2002, 21:30
Блин, файл не прицепился.

camilla
04.10.2002, 23:07
Оригинал написал(а) TTS
Всё-таки с исходником проще было бы. Или там какое-то ноу-хау? Не надо стесняться.

Да нет, никакого ноу-хау нет. Просто не люблю загружать людей, типа "...вот исходничек, у кого есть желание покопаться и выяснить проблему". Но раз предлагают (уже второй раз), придется нахально воспользоваться :)

2beshan

itemtext=itemtext+"" не работает, хотя значение itemtext трейсит правильно :mad:

Nox Noctis
05.10.2002, 00:22
кхм-кхм...
надеюсь, что последующее высказывание не оскорбит слух собравшихся, но...
скрипт написан через задницу

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

так, теперь по сути:

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

сетПроперти тоже нужно заменить на обращения через точку...
у нас МХ на дворе вообще-то... а вы используете синтаксис четверки...
например,
setProperty("/field", _x, 137); надо превратить в "field._x = 137;"

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

третее:
конструкция вида submitem4:itemtext = "fabulous"; - есть нечто совсем-совсем странное и точно нерабочее:)

вместо 'add' всяко проще писать '+' - хотя это уже вопрос стиля
(так же как и '<>' - это устариевший синтаксис, но писать так или '!=' дело вкуса и не более того)

в адресации через точки гораздо сложнее запутаться...
иногда удобно писать /: вместо _root (просто короче)
но обращение типа ../: значительно сложнее дла понимания чем _parent. правда ? :)

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

sergwizard
05.10.2002, 01:50
2camilla

В подробности не вдавался. Код написан четверочным языком, тяжело читать, поэтому, с беглого взглядя, выловил только несколько блох:
1.layer "labels". Почему menunr = "0" (string); а не menunr = 0; ?

2.Вторая кнопка "humour"
on (release) {
unloadMovie("/em");
tellTarget ("/sumbtitle") { // надо submtitle
text = "";
}
Эти куски кода надо убрать из всех кнопок.
3. И самое главное, для того, чтобы "Нужно, чтобы при нажатии на элемент подменю в динамическое поле основной сцены (submtitle) выводилoсь значение этой самой itemtext."

В "submenu", в коде на кнопке я вписал
/submtitle:text = itemtext;
Поле "submtitle" я передвинул в центр, чтобы лучше было видно.
В общем, смотри исходник.
ЗЫ. Для "начинающего флэшера" очень даже нелохо!
Удачи.

[DUKE_PROPHET]
05.10.2002, 01:54
Оригинал написал(а) camilla
2. к динам полю в кнопке нельзя обратится

У меня получается только фиксированный текст присвоить.
Типа:
text="123" - выводит без проблем
text=d, где d="123" - никак

если у кого есть идея как это побороть...

Вначале нужно text=""; а затем text=d;

Nox Noctis
05.10.2002, 02:04
2[DUKE_PROPHET]
неа :) это тут не причем :)
абсолютно без разницы в каком порядке...

TTS
05.10.2002, 02:57
ЗЫ. Для "начинающего флэшера" очень даже нелохо!
Предлагаю слово "нелохо" ввести в широкое употребление, как производное от "нелохово" или "нелоховско". :) :)
2beshan: а, может, это у тебя шрифт старый, проблемы с кодировкой? Не пробовал менять в реестре с_1250.nls на c_1251.nls? Попробуй.

sergwizard
05.10.2002, 03:24
Да, я, шлепая по клавишам, показал себя ни разу неграмотным, пропустил две буквы и, как заметил TTS, изобрел неологизм. Можно пользоваться:-)

camilla
05.10.2002, 13:45
[QUOTE]Оригинал написал(а) Nox Noctis
[B]кхм-кхм...
надеюсь, что последующее высказывание не оскорбит слух собравшихся, но...
скрипт написан через задницу

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


За замечания по сути спасибо. Хочу лишь отметить, что вовсе необязательно бросаться профессиональными терминами - если этот форум для профессионалов (кем себя я отнюдь не мню и сделала оговорку в своем первом посте), то так и скажите, что типа, нечего сюда лезть и вообще Flash ковырять.

По поводу 4-ного кода. Да, копаюсь в 4-м, потому как из литературы есть единственная книга по 4 (живу не в русскоязычной стране, книги на английском очень дорогие, интернета кабельного нет), а в МХ с нуля разобраться крайне сложно.

camilla
05.10.2002, 13:47
В общем, смотри исходник.
ЗЫ. Для "начинающего флэшера" очень даже нелохо!
Удачи. [/B][/QUOTE]

Работает! Спасибо огромное :)

Nox Noctis
05.10.2002, 13:51
да ладно :)
прошу прощения...
вчера ночью меня несло... сам удивляюсь :))

TTS
06.10.2002, 04:48
Автора, кажись, потеряли...

coil
06.10.2002, 05:05
Как не печально но Nox Noctis никто не с.

beshan
07.10.2002, 13:32
2sergwizard

Я не понимаю, о какой ты проблеме говоришь? Что значит "при вводе текста в динам поле лезут квадраты"? ......ты хочешь ввести первоначальный текст в dynamic text, ничто этому помешать не может.

вот именно, я хочу ввести первоначальный текст в динам поле, и тут даже не проблема моего изысканного шрифта, точно такой же прикол вылазит и в стандартном шрифте тахома. причем эта хрень вылазит даже в твоем исходнике от 04-10-2002 03:54

1. заменяю шрифт на тахому, ембед шрифта выключен - все буквы заменены на квадраты
2. шрифт заембдил - ни букв, ни квадратов, ваще ни чего не пичатает

при этом на System.useCodepage = true; ваще не реагирует

sergwizard
07.10.2002, 18:52
Ты мне лучше скажи, что видишь в моем файле от 04-10-2002 20:30?
Ты видишь квадратики или полноценный шрифт (нестандартный GothicRus)?
Я специально послал без исходника, потому что, открывая исходник, ты ( то есть Flash) сразу же ломаешь шрифт (так как у тебя его нет).
Так вот, первая фраза, которую ты видишь, вбита напрямую, без скрипта в динамическое поле. Это ПЕРВОНАЧАЛЬНЫЙ текст! И в input text ты можешь вписывать текст, и он будет моим шрифтом.
А это значит, что ты сам делаешь что-то неправильно. Пришли свой шрифт, и я верну тебе swf, в котором все будет тип-топ.

beshan
07.10.2002, 19:46
2sergwizard
1. вижу текст написанный славянской вязью. во всех случаях текст отображается корректно
2. на машине у меня такого шрифта нет, так что все по честному :-)
3. глючные шрифты я заатачил

жду тип-топ :-))

sergwizard
07.10.2002, 23:06
Да, beshan, удивил ты меня.
1. Кто тебя надоумил использовать PostScript Type 1 font? Насколько я знаю, Flash не является интерпретатором PostScript language. То есть он не видит и не понимает эти шрифты. И, естественно, показать их не может. Для любого интерпретатора PostScript(a), мало самого файла шрифта, - для него еще необходим так называемый "Fontmap" файл, который определяет, какой файл определяет какой шрифт.
2. Как ты умудрился установить этот шрифт в динамическом поле? Flash, как и большинство программ, не использующих PostScript шрифтов, берут шрифты из системного каталога :/Windows/fonts или из открытого файла шрифта. Системный каталог не принимает постскриптовых шрифтов. И я просто не понимаю, как ты смог при выборе шрифтов во Flash, выбрать именно этот шрифт. Может быть, это возможно при включенном Adobe Type Manager (ATM). Или еще как-то через PhotoShop… Не знаю, я не пробовал. Где в компутере у тебя лежат эти шрифты? Поделись, открой тайну, как ты вставлял их во Flash?
В общем, могу тебе сказать только одно: И шрифт это не глючный, и не лажа это с динам полем, а просто неправильное использование и того, и другого. Будешь скрещивать флэш с постскриптовами шрифтами – будут дальнейшие заморочки, которые ты называешь "лажа".
Удачи.

beshan
08.10.2002, 12:25
да я сам себе уже вторую неделю удивляюсь :-)
1. шрифты мне дали наши клиенты. шрифты должны быть нормальными (всмысле не битыми) так как делались под заказ. там для каждого шрифта идет по 3 файла, так что может карта там где то и есть.
2. все шрифты я ставлю через адоб тайп менеджер

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

все спасибо за внимание, топик закрыт