![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2009
Сообщений: 30
|
Знакомлюсь с AS3. Вообщем такое дело.
Нужно, чтобы по щелчку в определенной области сцены(допустим спрайту, может клипу, не суть) у меня в этой области появился нужный мне значок(картинка), которую я бы мог двигать по сцене и, отпустив клавишу мыши) он у меня остановился или удалился. все вроде просто. Начал копать, нашел в адобовском хелпе такой пример: import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); } import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; addChild(target1); target1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.x=mouseX; circle.y=mouseY; addChild(circle); circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); } Чего делать? уже весь измучился =). Правильно ли вообще так переносить? p.s. заметил, что если оставлять картинку в круге, то почему то всё работает... Последний раз редактировалось a7z; 23.07.2010 в 16:02. |
|
|||||
|
Регистрация: May 2009
Сообщений: 30
|
ы =) спасибо, работает! всё гениальное - просто =)
а правильно ли будет удалить ребенка из памяти так:removeChild(circle); в функции mouseReleased? |
|
|||||
|
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Так вы только уберете объект из списка отображения. Удалить из памяти (точнее, удалится он потом по воле GC, при условии, что больше на объект нигде нет ссылок): cirlce = null.
|
|
|||||
|
Регистрация: May 2009
Сообщений: 30
|
ок, понял, сенкс!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 07:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|