PDA

Просмотр полной версии : Создание переключателей (вкл/выкл, т.н. "залипших кнопок"). Несколько вопросов


NAMEsoft
05.04.2004, 03:02
Создание переключателей (вкл/выкл, т.н. "залипших кнопок"). Несколько вопросов

Нужно создать меню, названия пунктов которого берутся из переменных FlashVars. с этим пока проблем нет (просто не дошел :))
в результате должен быть ряд кнопок, которые будут реагировать на подведение мышки и ее клики.

когда было определенное количество кнопок, и "подсвеченная" кнопка совпадала с размером "обычной", я делал так:
1. нижний слой - картинки "подсвеченных" кнопок
2. верхний слой - "обычные" кнопки, обернутые в мувиКлипы, которым присвоены значения id1/id/id3...
в "обычных" кнопках на первом кадре была сама кнопка, а на втором и третьем (over/down) было пустое место, т.е. показывалась кнопка, которая была ПОД основной
при клике был цикл, который обходил все мувики id*, и делал visible=true всем, кроме "кликнутой", таким образом кнопка "выделялась" + у нее пропадала кликабельность (то что нужно)

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

собсно, сами вопросы:
1. как создать "залипающую" кнопку
2. как на нее повесить обработку события onclick (все кнопки создаются через DublicateMovieClip динамически)
3. в созданной кнопке надо поменять текст, а он в "обычном" и "кликнутом" состоянии разного цвета и размера
4. создаваемые кнопки надо выровнять по правому краю, так как в HTML размер флешки задается как width=100%

работаю в Flash5, но принимаются любые советы и идеи.

в поиске нашел:
http://www.flasher.ru/forum/showthread.php?threadid=45518
http://www.flasher.ru/forum/showthread.php?postid=210767
http://www.flasher.ru/forum/showthread.php?threadid=29479
http://www.flasher.ru/forum/showthread.php?postid=123062
http://www.flasher.ru/forum/showthread.php?threadid=49240
но нужной информации не почерпнул :(

Dindin
05.04.2004, 10:41
Если это - то что нужно, то пиши на мыло dindin@hitv.ru - пришлю исходник, потому как большой очень - по частям

Dindin
05.04.2004, 10:43
Да, кстати, забыл сказать - запускай index.html, при запуски просто flash' ки рабоать не будет :)

Dindin
05.04.2004, 10:44
Да что с моей памятью!!!? - файл приложить забыл
:(

Mitay
05.04.2004, 14:38
Невнимательно читал, но по-моему проблема исчезнет, если разместить состояния кнопок по кадрам
т.е. в первом кадре рисовать кнопку up
во втором, например, onRollOver и т.д.

а в первом кадре написать код, который ловит события и ставит на соотв кадр

NAMEsoft
06.04.2004, 00:18
так, кнопки я таки сделал, причем сам :)
но вот вопрос: как менять им ширину? надписи на них разные, и некоторые не помещаются на кнопках....

Dindin
06.04.2004, 10:47
read-only свойство TextField.textWidth возвращает ширину текста в текстовом поле.

NAMEsoft
06.04.2004, 18:33
> textWidth
а с какой версии оно появилось? в пятерке есть?
но тут вопрос даже не в этом, вопрос с маштабировании самих кнопок... если им тупо задать _xscale/_width (забыл, извиняйте), то вместе с кнопкой изменится пропорция окружности (по бокам которая)... вот как с этим быть?

кроме того, если делать полноценное меню, то его и вставлять надо как width=100%, а сейчас оно у меня вставлено тупо как <embed width=750 height=40>....
и это только в одном разделе, а как быть с разделами, где 2-3 кнопки, когда 50%-70% пропадают? как его приучить сдвигаться в самый правый угол, отображенный на экране?

вот такая затыка :(

Dindin
06.04.2004, 19:26
Вопросов много и все они немаленькие.
1. объект TextField в пятерке проработан очень слабо, но!!! По статистике Macromedia на декабрь 2003 (http://www.macromedia.com/software/player_census/flashplayer/version_penetration.html)
flash player v6 установлен в среднем на 91% машин, тогда как пятую версию подерживают около 95 процентов. То есть пятый флэш всего на 4% машин. Так стоит ли заморачиваться его поддерживаемостью.

Nox Noctis, не бей меня я и вправду иногда пишу для четвертого плейера

Dindin
06.04.2004, 19:34
насчет изменения размера кнопок: Вот примерно так можно сделать ресайз

Dindin
06.04.2004, 19:40
И третье, последнее. Для тебя это не будет проблемой если страницу ты генеришь на PHP или владеешь JavaScript.
Есть такой объект Stage, он отвечает за расположение твоего мувиеа на сцене. Так, если ты, к примеру вставишь в мувик такой код :

Stage.scaleMode = "noScale";
Stage.align = "LT";

то мувик всегда будет прижат к верхнему краю окна проектора. Вставив явовскую функцию опроса ширины окна браузера можешь менять ширину окна проектора в тэгах <embed> и <object>.

NAMEsoft
07.04.2004, 01:20
flash player v6 установлен в среднем на 91% машин, тогда как пятую версию подерживают около 95 процентов. То есть пятый флэш всего на 4% машин. Так стоит ли заморачиваться его поддерживаемостью.
нет, просто у меня самого пятерка (флеш), и шестерка шлеш-плеер :)


насчет изменения размера кнопок: Вот примерно так можно сделать ресайз
у меня не открывается :(
это для пятой версии?

Для тебя это не будет проблемой если страницу ты генеришь на PHP или владеешь JavaScript.
ну относительно пыха (и вообще серв-сайда), то такое решение явно неуместно, так как неизвестны размеры экрана (а если пользователь развернет окошко?), но и с JS не очень хочется... по идее, можно отлавливать события и отправлять их в флеш, но у меня не получилось (терялись сообщения)
да и вообще, идеальным вариантом было бы в коде
<embed width=100% height=40>
а вся остальная обработка во флеше... а он, гад :), только центрует :(

Stage.scaleMode = "noScale";
Stage.align = "LT";
а как это работает, и куда вставлять?

Вставив явовскую функцию опроса ширины окна браузера можешь менять ширину окна проектора в тэгах <embed> и <object>.
непонял, а почему width=100% не подойдет?

Dindin
07.04.2004, 10:46
:( Вынужден тебя огорчить - в пятерке пости ничего из этого не работает. Ставь себе MX. А лучше MX 2004.

Да простит меня Nox Noctis