![]() |
Неадекватная область содержимого
Привет.
Заранее извиняюсь, если вопрос будет нубским. Курил мануалы и гугл, но не нашёл ничего, что бы мне помогло. Создаю экземпляр спрайта. Очищаю. Рисую. Ловлю событие мыши. Итоговый размер спрайта получается гораздо больше, чем его визуальная часть. Это видно, если сделать его фон непрозрачным, ну и мышь, соответсно, ловится этой "лишней" областью. Пруф: [IMG]http://plasmon.**********/4987754.image[/IMG] Вот ключевой код: Код AS3:
За стилистику не пинайте, я всего три дня в AS3, а душу уже продал С++. |
А почему показан лишь кусок кода?
По нему ничего толком сказать нельзя. Но спрайт сам по себе не может быть больше, чем положено. Его размер, определяется размерами содержимого. Здесь видно текст филд внутри спрайта, от так же влияет на его размеры. Скорее всего по умолчанию этот текстфилд слишком высокий (я имею в виду не высоту текста, а высоту самого текстового поля), поэтому и спрайт тянется до ненужных размеров. Это можно проверить назачив текстфилду значения border и borderColor. Сам много раз наступал на эти грабли, причем даже несколько минут назад ) |
Я подозреваю, что где-то в коде у вас присутствует строчка
Код AS3:
Добавлено через 3 минуты Отключить реакцию на мышь у текстового поля можно установив свойство mouseEnabled в false. |
а сократить размеры текстового поля до тех которые реально занимает текст можно:
Код AS3:
вообще, подробнее здесь: http://help.adobe.com/ru_RU/AS3LCR/F....html#autoSize |
Цитата:
Если задержитесь в AS - озаботьтесь вниканием в принятые конвенции. Полезно будет. |
хм, а в плюсах суффиксом рекоммендуют подчеркивание в приватах писать.. ;)
Код:
class SomeClass { |
Прикольно, что акронимы в С++ рекомендуют писать прямо противоположно тому, что рекомендуется для кода в AS...
... однако мы с вами, ShadowsInRain, в ад вместе попадём. Я ведь тоже нарушитель(о_0) соглашения :) |
Всё правильно, текстфилд я добавил чайлдом, а про его размеры забыл. Вот он и палится: 100 свой размер, + 8 отступ от угла. Как его укращать, я уже в курсе.
Странно, что Adobe сделали такой конкретный размер по-умолчанию и вырубили автосайз. Имхо, здравый смысл подсказывает, что по-умолчанию должен быть только автосайз. Спасибо всем большое. :3 bav, я использую mouseChildren. Тем не менее, сообщение дошло до контейнера, иначе бы я не узнал о деффекте. Оффтоп на счёт стилистики. Во-первых, поля с m_ и так непубличные. Во-вторых, в некоторых конторах (Microsoft, Valve) есть мода использовать m_ для для любого "member". Такой стиль оченнь понравился. В какой-то ветке писали, что современные IDE с их плюшками должны избавить от проблем определения типа на глаз. Да вот, я вам скажу, что это нифига не работает, потому что среди месива из всех 100500 определений разобраться отнюдь не легко. А тут я ставлю m_, зову автодополнение, и сразу вижу список всех свойств / переменных. Ставлю f_, и вижу список непубличных функций. И ещё меня коробит писать первое слово в составном имени с нижнего регистра. fish_r, мы попадём в ад только если наш код будет глючным и непонятным, или сломает кому-то мозг при рефакторинге. Стилистика не причём.) |
ShadowsInRain, вместо m_ давно уже пользуют this.
|
Цитата:
почему же тут коробит, а тут не коробит... Я не против собственных конвенций, просто проблема в том, что конвенция должна быть одна. А тут идёт смесь своей конвенции и конвенции базовых классов, а если вы ещё какую либу подключите (тоже со своим уставом)? Просто я когда вижу такой код - заставляю переписывать ибо: Цитата:
|
| Часовой пояс GMT +4, время: 23:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.