![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Aug 2013
Адрес: Москва
Сообщений: 59
|
Здавствуйте! Во Flex не срабатывает событие MOUSE_DOWN. Точнее, когда запускаю проект, то никаких ошибок не вылазит, и всё успешно запускается; но приложение ну совсем никак не реагирует на клик мышкой.
У меня есть объект M, который добавляет объект S: stage.addChild(S). M же графики никакой не содержит. Вот что находится внутри S: import flash.display.Sprite; import flash.display.Stage; import flash.events.Event; import flash.events.MouseEvent; public dynamic class S extends Sprite { public function S() { graphics.drawRect(0, 0, 1080, 780); addEventListener(Event.ADDED_TO_STAGE, onAddStage); } private function onAddStage(e:Event):void { addEventListener(MouseEvent.MOUSE_DOWN, startDr); trace(parent); } private function startDr(e:MouseEvent):void { trace("!!!!!!!!!!!!!!!!!!!!!!!!!"); var r:Shape = new Shape(); r.x = 350; r.y = 250; r.graphics.beginFill(0x33FF33); r.graphics.drawRect(0, 0, 100, 100); r.graphics.endFill(); addChild(r); startDrag(); } } |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 431
|
public function S() { graphics.beginFill(0xff0000); //вот это добавьте -это определяет заливку, graphics.lineStyle(..) определяет контур graphics.drawRect(0, 0, 1080, 780); addEventListener(Event.ADDED_TO_STAGE, onAddStage); } ![]() Он у вас без заливки и контура, соответственно по нему вы не кликните.
__________________
Oomph |
|
|||||
|
Регистрация: Aug 2013
Адрес: Москва
Сообщений: 59
|
Да точно, тупанул... Прошу прощения за такой глупый вопрос!
|
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
Цитата:
Последний раз редактировалось Akopalipsis; 03.10.2013 в 00:01. |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
я хотел сказать, что на стейдж вешать слушателей более приемлемо, чем добавлять на неё обьекты.
Цитата:
|
|
|||||
|
Цитата:
![]() "Я не могу пройти по соседскому газону, поэтому лучше поставлю туда тумбочку" Цитата:
![]() Представте что у вас есть кнопка "закрыть приложение", а срабатывает она при нажатии на любую область экрана. Я бы сошел с ума от такой программы) |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
А если есть десять кнопок, то лучше десять слушателей или один слушатель на стедж?
Или если нужно вообще весь экран отслеживать на клик? Вот вообще весь, то так всё равно нельзя? Добавлено через 7 минут Цитата:
я точно знаю, что добавлять на стейдж обьекты - нельзя! Недавно столкнулся с проблемой, на которую мне посоветовали повесить слушателя на стейдж. По Вашему это медвежий совет? Или слушать клавиатуру со стейджа === добавить десять классов на стейдж ? |
|
|||||
|
Регистрация: Mar 2013
Сообщений: 290
|
Хм, а по Муку вроде как можно, вот например:
For example, the following code modifies the App class from Example 20-5 so that the Sprite object and its child Shape object are added directly to the Stage instance. Because the Sprite and Shape objects are not descendants of a .swf file’s main class instance, their root variables refer to the Stage instance. package { import flash.display.*; import flash.geom.*; public class App extends Sprite { public function App ( ) { var rect:Shape = new Shape( ); rect.graphics.lineStyle(1); rect.graphics.beginFill(0x0000FF, 1); rect.graphics.drawRect(0, 0, 75, 50); var sprite:Sprite = new Sprite( ); sprite.addChild(rect); // Add child to Stage instance, not this App instance stage.addChild(sprite); trace(rect.root); // Displays: [object Stage] trace(sprite.root); // Displays: [object Stage] } } } Но идеологически, как мы теперь знаем, это есть зло - согласно заповедям от Wolsh, например : ) |
|
|||||
|
Регистрация: Aug 2013
Адрес: Москва
Сообщений: 59
|
А почему добавлять объекты на стейдж плохо? Чем это черевато-то?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 13:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|