Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Drag&n&Drop (http://www.flasher.ru/forum/showthread.php?t=113700)

Nastardimus 06.07.2008 12:35

Drag&n&Drop
 
Код:

package main {
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.display.Sprite;

        public class myButton extends MovieClip {
                public function myButton () {
                        addEventListener (MouseEvent.CLICK, onClick);
                        addEventListener (MouseEvent.CLICK, onClic);
                }
                function onClick(event:MouseEvent):void {
                        startDrag (myButton);
                }
                function onClic (event:MouseEvent):void {
                        stopDrag (myButton);
                }
        }
}

Есть кнопка, надо написать драг и дроп для неё, у меня получается как-то так, но это не работает. Точнее есть убрать функцию onClic то старт драг работать будет. А так не работает, я AS3.0 знаю очень плохо, Как это написать правильно ?

iNils 06.07.2008 13:01

Для оформления своего кода надо использовать теги [code][/code].

ramshteks 06.07.2008 13:35

Код:

addEventListener (MouseEvent.CLICK, onClick);
addEventListener (MouseEvent.CLICK, onClic);

замени на

Код:

addEventListener (MouseEvent.MOUSE_DOWN, onClick);
                        addEventListener (MouseEvent.MOUSE_UP, onClic);


Nastardimus 06.07.2008 13:43

Цитата:

Сообщение от ramshteks (Сообщение 750375)
Код:

addEventListener (MouseEvent.CLICK, onClick);
addEventListener (MouseEvent.CLICK, onClic);

замени на

Код:

addEventListener (MouseEvent.MOUSE_DOWN, onClick);
                        addEventListener (MouseEvent.MOUSE_UP, onClic);


Пробовал, вот такую ошибку выдаёт.
1137: Incorrect number of arguments. Expected no more than 0.

ramshteks 06.07.2008 13:49

Код:

package main {
        import flash.display.*;
        import flash.events.*;
       

        public class myButton extends MovieClip {
                public function myButton () {
                        addEventListener (MouseEvent.MOUSE_DOWN, onMouseDownEvent);
                        addEventListener (MouseEvent.MOUSE_UP,onMouseUpEvent;
                }
                private function onMouseDownEvent(event:MouseEvent):void {
                        event.target.startDrag ();
                }
                private function onMouseUpEvent(event:MouseEvent):void {
                        event.target.stopDrag ();
                }
        }
}

извиняюсь первый раз не увидел ошибки с стартДраг. Надо смотреть спецификацию метода прежде чем его использовать!

Nastardimus 06.07.2008 13:56

В таком случае ошибка такая.
Код:

ReferenceError: Error #1069: Property startDrag not found on flash.display.SimpleButton and there is no default value.
        at main::myButton/::onMouseDownEvent()


ramshteks 06.07.2008 13:59

Код:

event.target.
попробуй заменить на myButton... но лучше на this

Nastardimus 06.07.2008 14:01

Цитата:

Сообщение от ramshteks (Сообщение 750385)
Код:

event.target.
попробуй заменить на myButton... но лучше на this

Да с this уже сам написал, спасибо огромное за помощь.

ramshteks 06.07.2008 14:04

Цитата:

Да с this уже сам написал, спасибо огромное за помощь.
можешь попробовать и без зис, думаю тоже будет работать

BlooDHounD 06.07.2008 16:09

в хелпе кажется чётко написано, что startDrag есть только у наследников Sprite. разве SimpleButton таковым является?


Часовой пояс GMT +4, время: 07:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.