![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2011
Сообщений: 35
|
Привет.
Заранее извиняюсь, если вопрос будет нубским. Курил мануалы и гугл, но не нашёл ничего, что бы мне помогло. Создаю экземпляр спрайта. Очищаю. Рисую. Ловлю событие мыши. Итоговый размер спрайта получается гораздо больше, чем его визуальная часть. Это видно, если сделать его фон непрозрачным, ну и мышь, соответсно, ловится этой "лишней" областью. Пруф: [IMG]http://plasmon.**********/4987754.image[/IMG] Вот ключевой код: // это в конструкторе m_CaptionContainer = new Sprite(); f_Redraw_Caption(); ... m_CaptionContainer.addEventListener(MouseEvent.MOUSE_MOVE, f_MouseOverCaption); ... protected function f_Redraw_Caption() { m_CaptionEntity.x = m_CaptionEntity.y = m_Margin - 2; var w:Number = 2 * m_Margin + m_CaptionEntity.textWidth; var h:Number = 2 * m_Margin + m_CaptionEntity.textHeight; m_CaptionContainer.graphics.clear(); m_CaptionContainer.graphics.lineStyle(1, 0xFFFFFF); m_CaptionContainer.graphics.beginFill(0xFFFFFF, 0.35); m_CaptionContainer.graphics.drawRect(0, 0, w, h); m_CaptionContainer.graphics.endFill(); m_CaptionContainer.opaqueBackground = 0xFF0000; // для дебага } ... // для дебага protected function f_MouseOverCaption(event:MouseEvent) { Popup.instance.text = String(event.target) + "\n" + m_CaptionContainer.width + " * " + m_CaptionContainer.height; Popup.instance.x = x + width; Popup.instance.y = event.stageY; } За стилистику не пинайте, я всего три дня в AS3, а душу уже продал С++. |
![]() |
Часовой пояс GMT +4, время: 19:05. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| AS3 , graphics , Sprite , баг , содержимое |
|
|