![]() |
|
||||||||||
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
сразу скажу, что я недавно начал изучать классы, и столкнулся с проблемой.
вот код: package { import flash.display.MovieClip; import flash.events.MouseEvent; public class GUNS extends MovieClip { public function GUNS() { this.addEventListener(MouseEvent.MOUSE_DOWN, mDown); this.addEventListener(MouseEvent.MOUSE_UP, mUp); } public function mDown(e:MouseEvent):void { this.startDrag(true); } public function mUp(e:MouseEvent):void { this.stopDrag(); } } } мне посоветовали к mouse up дописать свойство stage, я дописал вот так: но выдает ошибку - TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". at GUNS() at Символ16() at flash.display::Sprite/constructChildren() at flash.display::Sprite() at flash.display::MovieClip() at flash.display::Sprite/constructChildren() at flash.display::Sprite() at flash.display::MovieClip() at flash.display::Sprite/constructChildren() at flash.display::Sprite() at flash.display::MovieClip() at shop_and_battle_fla::MainTimeline() помогите реализовать мою идею. |
|
|||||
package { import flash.display.MovieClip; import flash.events.MouseEvent; public class GUNS extends MovieClip { public function GUNS() { this.addEventListener(Event.ADDED_TO_STAGE, init); } public function init():void{ this.addEventListener(MouseEvent.MOUSE_DOWN, mDown); this.addEventListener(MouseEvent.MOUSE_UP, mUp); } public function mDown(e:MouseEvent):void { this.startDrag(true); } public function mUp(e:MouseEvent):void { this.stopDrag(); } } } |
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
большое спасибо! а как сделать так чтоб, при отпускании мыши объект становился в исходные координаты?
|
|
|||||
|
В mDown запоминать координаты, а в mUp восстанавливать.
|
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
я немножко модернезировал свой код, и вот что получилось:
package { import flash.display.MovieClip; import flash.events.MouseEvent; public class GUNS extends MovieClip { public function GUNS() { var px:Number = new Number var py:Number = new Number px = this.x py = this.y trace (py, px) this.addEventListener(MouseEvent.MOUSE_DOWN, mDown); this.addEventListener(MouseEvent.MOUSE_UP, mUp); } public function mDown(e:MouseEvent):void { startDrag(false); } public function mUp(e:MouseEvent):void { this.x = px this.y = py stopDrag(); } } } строка 23 1120: Обращение несуществующего свойства px. строка 23 1120: Обращение несуществующего свойства py. что делать ? (напомню что с классами познакомился недавно) |
|
|||||
|
Переменные объявленные в конструкторе будут видны только в нем. Для того, чтобы переменные можно было использовать по всему классу их необходимо объявить перед конструктором.
|
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
исправил, вот новые ошибки -
строка 9 1013: Атрибут "private" можно использовать для определений свойств класса. строка 10 1013: Атрибут "private" можно использовать для определений свойств класса. строка 1 5000: В класс "GUNS" должен входить подкласс "flash.display.MovieClip", так как он связывается с символом такого же типа в библиотеке. |
|
|||||
|
У вас так написано?
package { import flash.display.MovieClip; import flash.events.MouseEvent; public class GUNS extends MovieClip { private var px:Number; private var py:Number; public function GUNS() { px = this.x py = this.y trace (py, px) this.addEventListener(MouseEvent.MOUSE_DOWN, mDown); this.addEventListener(MouseEvent.MOUSE_UP, mUp); } public function mDown(e:MouseEvent):void { startDrag(false); } public function mUp(e:MouseEvent):void { this.x = px this.y = py stopDrag(); } } } |
|
|||||
|
[+1 13.12.12]
[++1 13.12.12] Регистрация: Aug 2012
Сообщений: 145
|
нет. Огромное вам спасибо!)
Добавлено через 2 часа 35 минут а как можно проверять столкновение класса с другим или этим классом? Последний раз редактировалось XMON; 02.12.2012 в 16:01. |
|
|||||
|
Можно так попробовать.
http://help.adobe.com/ru_RU/FlashPla...itTestObject() |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|