![]() |
модальное окно и маленькие проблемы...
Всем привет!!!
Помучился я тут с html alert и решил делать свой на флеше(компоненты в силу их веса не рассматриваю)... Решил кучу проблемм с этим связанным... Но остались такие вопросы: 1) При блокировки доступа ко всем элементам под окном сообщения с помощью большой прозрачной кнопки с useHandCursor=false все ли реально заблокируется и не начнет ли что-то из-за этого тормозить??? 2) На окне сообщения расположил всего одну кнопку "OK". Но как сделать обработку по нажатию на клаву? Делаю так: Код:
ButtonOK.onKeyUp=function(){trace("pressed");}Эту же функцию пытался ставить практически на все кнопки и просто мувики... И не работает. А заработало когда я в одном мувике непосредственно написал: Код:
onClipEvent(keyUp)3) Не понимаю как узнать центр ролика. Глупо, но факт. Почему-то _root._height, _root._width, Stage.height, Stage.width показывают иногда неверное значение. И поэтому Код:
x=_root._width/2; |
Код:
Stage.height Staget.widthКод:
Stage.scaleMode = "noScale"; |
Да ктати центр вычисляеться так
w1 = ширина рабочей поверхности w2 = ширина модального окна центр = (w1-w2)/2 аналогично для высоты. |
Код:
Stage.scaleMode = "noScale";А вот на счет Код:
Stage.align = "TL";А на счет центра вы сами напишите такой код в разных местах... Код:
trace(Stage.height)Цитата:
|
Код:
trace(Stage.height)Цитата:
прикрепи исходник посмотрю... |
Вложений: 1
сейчас я не на работе, а дома... по быстрому сварганил пример с трейсом, который не правильно показывает значения...
|
исходник запутанный, не понимаю чего добиваешься вообще.
Код:
//Draw the rectangle |
Разобрался...
Нужно было поставить Код:
Stage.align = "TL";Спасибо за ответы... ;) |
Насчет всяких определений центра сцены и выравниваний советую почитать про SystemManager.screen.
|
Цитата:
|
Цитата из хелпа:
SystemManager.screen Availability Flash Player 6 (6.0 79.0). Edition Flash MX 2004. Usage SystemManager.screen Description Property; an object with x, y, width, and height properties that indicate the size and position of the Stage. Example If Stage.align is set to something other than "LT", it is very difficult to know what coordinates are actually viewable. For example, suppose you want to place a watermark icon in the lower right corner of the Stage (similar to the watermarks many television channels use). If the Stage is centered and much wider than the Stage size set up in the FLA file, the following code places the watermark offscreen: Watermark.move(Stage.width – Watermark.width, Stage.height – Watermark.height); However, the following code would work in all Stage alignments: Watermark.move(SystemManager.screen.width + SystemManager.screen.x - Watermark.width, SystemManager.screen.height + SystemManager.screen.x – Watermark.height); |
Ices, почему бы тебе не добавить listener к клавиатуре для отлавливания кнопок? Ведь к сцене ты его добавляешь :)
key_listener={} key_listener.allow_keyboard=true; //---разрешаешь отрабатывать клавиатуру key_listener.onKeyUp=function(){ if (!this.allow_keyboard) return 0; trace(Key.getCode()+" key up"); } key_listener.onKeyDown=function(){ if (!this.allow_keyboard) return 0; trace(Key.getCode()+" key down"); } Key.addListener(key_listener); . . . key_listener.allow_keyboard=false;//---запрещаешь обработку клавиатуры |
а ну да ... просто я во флешке ввёл а он не подсветился и подумал мож чё другое ...
|
На счет SystemManager не понял...
Не нашел я такого в флеше... Также при отладке пытался вызвать: Код:
trace(SystemManager.screen.width);В хелпе тоже ничего не нашел... Пользуюсь MX Professional 2004 Version 7.0 А на счет кнопок надо посмотреть... |
import mx.managers.SystemManager
trace(SystemManager.screen.width); P.S незнаю как в 7.0 у меня 7.2 |
Понял.
Произвел замеры... Одна строчка(импортированный SystemManager): Код:
import mx.managers.SystemManagerТем более то, что мне надо можно определить и запомнить один раз через Stage, но в главной сцене и в первом кадре таким образом: Код:
_global.MyWorkSize=new Object();Тогда можно и грубым способом: Код:
_global.MyWorkSize=new Object(); |
не понял что у тя не пашет...
_global.MyWorkSize = new Object(); MyWorkSize.width = Stage.width; MyWorkSize.height = Stage.height; trace("height: "+MyWorkSize.height+", width: "+MyWorkSize.width); все выводится... и что значит при отладки в твоём понятии?? |
Цитата:
Код:
ButtonOK.onKeyUp=function(){trace("pressed");}Код:
Key.removeListener(ButtonOK); |
cyraxchel да это то же самое, только листенеры я не удаляю. Почему? Вариант более гибкий.
|
@MIX-er
Под отладкой я понимаю когда запускаешь флеш в оболочке MX не через ctrl+enter, а через ctrl+shift+enter... |
а у тя какая версия мх и в какую версию ты компелишь???
|
У меня MX Professional 2004 Version 7.0
|
| Часовой пояс GMT +4, время: 16:32. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.