Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: dynamic text в кнопке
Flash Zone Forum > Macromedia Flash > Начинающим
den59
Здраствуйте,
Сталкнулся с такой проблеммой:
надо сделать объект кнопку чтобы в ее экземплярах можно было использовать разный текст. (который собственно и есть кнопка)
цель - для оглавления/перечисления разделов на сайте-книге.

конечно можно создать каждую кнопку отделльно со статик текстом, сверстать их и все будет работать, но это не очень удобно ибо хочется
прописать еще общие эффекты, типа затемнение/изменение цвета текста при наведении курсора и т.д.

использую Адоб Флаш ЦС3 Про, структура такая:
объект кнопка, в ней сидит мувиклип, в последнем 2 слоя - маска и динамик текст. (наличие маски влияет вроде на поле дейсвтия кнопки - самый большой объект в мувиклипе).
при статике все ок, только переключаюсь на динамик - фиг! ничего не видно сразу, но кнопка сама работает...
если убрать маску получаю чтонибудь такое - _level0.fotopaint_btn.instance12.index_txt

помогите плиз советом!

Денис
Flashery
Ну блин все ясно же как белый день включи в динамик текст шрифты и все!!! Есть там такоая кнопочка рядом на пропертис Embed/ вот там и встрой свой шрифт. если у тебя маска идет как поле для нажатия а не для чего либо полезного то убери ее нахрен и создай просто невидимый мс с альфа_=0% вот и все smile.gif удачи
den59
спасибо, действительно заработало smile.gif
только сейчас тупой нубовский вопрос - почему я не могу изменить текст через свойство text?
переменная var не объявлял, для объекта dynamic text вне кнопки это работает, для этогоже объекта в мувиклипе - тоже, а вот для мувика
включенного в кнопку - нет....

делаю так:
fotopaint_btn.index_mc.index_txt.text="Photopainti ng (St. Petersburg, 2007)";
экземпляр класса.мувик.текст.полек текст="значение"
Flashery
Создаешь текст поле у тебя это динамик текст твой код должен быть таким : ( при этом не забудь дать переменную этому полю например HUY )smile.gif - после этого пишем код : HUY.text = " MY TEXT ";

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

_root.fotopaint_btn.index_mc.index_txt.text="Photopainti ng (St. Petersburg, 2007)";

или

_parent.fotopaint_btn.index_mc.index_txt.text="Photopainti ng (St. Petersburg, 2007)";
den59
здесь есть фаил с объектом меню, http://www.flasher.ru/forum/showthread.php...7183#post707183,

проблемма в том, что вышеописанный способ работает для мувика содержащего текст когда он вне кнопки, но не работает когда этот мувик находится в кнопке....
Это-то и странно....

з.ы. c root или parent попробовал - не пашет...
а если пользоваться переменной var, то тогда эта переменная будет на весь класс, и видимо меняя ее будет менятся у всех экземпляров, что мне совсем не нужно!...
nikitar
Дело в том, что в этом проявляются ограничения типа символа: Button. Нужно сделать в виде кнопки мувиклип, то есть просто мувиклипу через actionscript назначить события, тогда всё будет работать.
den59
интересно... не знал...
ты мог бы, пожалуйста, написать подробнее с action script ибо я последний раз разбирался со флешем год назад и подзабыл...

предпологаю что нужно прописать события .onRelease(), onRollOver onRollOut?
скорее всего надо как-то зарегестрировать новый класс (основываясь на мувиклипе), прописать у него эти события (ибо хочется что-бы например каждый эллемент меню вел себя одинаково при наведении курсора и т.д.) и потом уже у экземпляров менять только поле text и onRelease()?

помогите плиз с наметками кода, а то никакой книжки под руками вообще нет ))
Flashery
Блин...я вообще фигею....нечего сказать...вопрос типа как работать с OnRelease и остальными это ваще даже не знаю в какой раздел. братан ты че ? за год такие простые правила не забываются :

YouMC.OnRelease = function () { YOU FUNCTION FOR EXAMPLE : gotoAndPlay(2); or var.text = "jopa" };
Also its work on other, such as : OnRollOver and so on....
Не вижу ничего сложного вообще, вообщем разбирайся

А когда нет книжки юзай INDEX SCRIPT или google smile.gif))
den59
это то я знаю, спасибо!!!
вопрос был скорее как прописать класс по образу существующего объекта в библиотеке.
как прописать функции это я знаю )))

Просто я не хочу прописывать эти функции для каждого экземпляра класса, я хочу объявить эти функции (onRollover, onRollout) во вновь созданном классе по шаблону мувика и потом уже корректировать OnRelease у каждого экземпляра....
Вот smile.gif
Flashery
скриптеры вперед по классам это не ко мне smile.gif)) я уже в универе учусь laugh.gif
nikitar
Цитата
uMC.OnRelease = function () { YOU FUNCTION FOR EXAMPLE : gotoAndPlay(2); or var.text = "jopa" };

Этот код работать не будет.
Регистр букв важен.
Flashery
Какой еще регистр букв ? Я думаю он понял что фраза YOU FUNCTION FOR EXAMPLE это комментарий. (Так же как и onRelease);

Да и ты должен был понять smile.gif))
nikitar
Писать mc.OnRelease новичку в высшей степени неразумно. Оно не будет работать. Работает только mc.onRelease.
den59
ребята, вы бе мне подзказали все-же как прописать класс на основе существующего объекта в библиотеке и добавить туда эти onRelease onRollOver onRollOut и т.д. smile.gif))
nikitar
den59, о каком классе вы постоянно говорите?
den59
2nikitar: (цитирую вас) ограничения типа символа: Button. Нужно сделать в виде кнопки мувиклип, то есть просто мувиклипу через actionscript назначить события, тогда всё будет работать

этих кнопок-ссылок с динамиком текстом будет достаточно много, поэтому прописывать дополнительные события через actionscript каждому экземпляру класса mc не разумно!...
из ООП видимо нужно обявить класс наследник объекта библиотеки mc с включенным в него dynamic text (inheritance) и дописать классу эти события (кнопочные).
потом уже создавать экземпляры вновь-объявленного класса (перетаскивая объект из библиотеки в нужные места приложения, делать это через action scrip очень не хотелось бы!)

Вот мое понимание решения вопроса.
Можно в целом дополнить класс mc этими событиями, НО кроме этих кнопок-ссылок-оглавления существуют и другие mc, и думаю не очень хорошо/правильно прописывать события для всех экземпляров подряд у базового класса.
Flashery
Все придется писать вручную. Тупо копируя код да и все. не вижу сложности.
den59
наконец-то сделал чтобы все работало без тупых copy-paste для каждого экземпляра!
подробности тут: http://www.flasher.ru/forum/showthread.php...7992#post707992
Всем спасибо за помощь!
Русская версия IP.Board © 2001-2009 IPS, Inc.