|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2014
Сообщений: 16
|
аналог canvas context.clearRect на actionscript
Здавствуйте!
Мне нужно залить некоторую область цветом (это не сложно), но затем вырезать в ней круглую дырку, что-то вроде clearRect на HTML5 Canvas. И будет ли это отверстие реально отверстием, чтобы через него можно было кликнуть на объекты под залитой областью??? |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Клик по дырке не будет считаться.
package { import flash.display.Sprite; import flash.events.MouseEvent; public class Hole extends Sprite { public function Hole() { var w:Number = stage.stageWidth; var h:Number = stage.stageHeight; var convas:Sprite = new Sprite(); convas.addEventListener(MouseEvent.CLICK, convas_clickHandler); convas.graphics.beginFill(0xAA6B42); convas.graphics.drawRect(0, 0, w, h); convas.graphics.drawCircle(w / 2, h / 2, 200); super.addChild(convas); } private function convas_clickHandler(event:MouseEvent):void { trace(event.type); } } } |
|
|||||
Регистрация: Apr 2014
Сообщений: 16
|
Спасибо большое!! Все просто!!
Объясни если не сложно про super, без него тоже работает, что именно это дает? |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
В данном контексте, это не чего не даёт, у меня просто привычка. Смысл таков, что класс в котором делаем addChild является наследником Sprite и если бы в нем мы переопределили метод addChild, то обратится к переопределенному методу можно было бы this.addChild или addChild, а к методу находящемся в супер классе super.addChild. Вот примерно так.
|
|
|||||
А если вдруг класс будет ещё не добавлен на сцену, когда будет выполняться этот конструктор?
Что-то мне подсказывает, что он в действительности не будет ещё добавлен на сцену, ибо сначала выполняется код из конструктора.
__________________
There is no thing in this world that is not simple. |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
В Main вроде всегда стейдж есть...
|
|
|||||
Если флешка с этим мейном не грузится в другую.
Тогда нет.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
Main - разве это не стандартное имя для Document Class? Main - это не термин, термин - Document Class.
А у вас класс назван Hole. Откуда автору темы знать, что это Document Class? Он ведь новичок, и первым делом, возможно, захочет создать экземпляр данного класса. Добавлено через 8 минут package { import flash.display.Sprite; import flash.events.MouseEvent; public class Hole extends Sprite { public function Hole() { super.addEventListener(Event.ADDED_TO_STAGE, init); } public function init():void { var w:Number = stage.stageWidth; var h:Number = stage.stageHeight; var convas:Sprite = new Sprite(); convas.addEventListener(MouseEvent.CLICK, convas_clickHandler); convas.graphics.beginFill(0xAA6B42); convas.graphics.drawRect(0, 0, w, h); convas.graphics.drawCircle(w / 2, h / 2, 200); super.addChild(convas); } private function convas_clickHandler(event:MouseEvent):void { trace(event.type); } } }
__________________
There is no thing in this world that is not simple. Последний раз редактировалось ZackMercury; 14.04.2014 в 15:27. |
|
|||||
Регистрация: Apr 2014
Сообщений: 16
|
А как можно теперь расширить отверстие с некоторым смещением, данный способ закрашивает ранее сделанное отверстие обратно )) Возможно ли вообще??
|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
|
Часовой пояс GMT +4, время: 13:52. |
|
« Предыдущая тема | Следующая тема » |
|
|