Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   двойной клик по мувику + startDrag (http://www.flasher.ru/forum/showthread.php?t=112264)

Dear.D 22.05.2008 16:04

двойной клик по мувику + startDrag
 
Значится так, есть некий мувик. При onPress он должен быть startDrag, при двойном клике он должен _xscale *= -1
Код:

mc.onPress = function() {
        if (this.flag != true) {
                this.startDrag();
                this.time = getTimer();
                this.flag = true;
        } else {
                if (getTimer()-this.time<300) {
                        //после одного нажатия эта фигня перестает работать, но только до следующего клика                        this._xscale *= -1;
                        this.flag = false;
                } else {
                        this.startDrag();
                        this.flag = false;
                }
        }
};
mc.onRelease = mc.onReleaseOutside=function () {
        stopDrag();
};

как поправить? :confused:

iNils 22.05.2008 16:51

А тут флаг совсем не нужен, достаточно времени.
Код:

mc.onPress = function () {
        if (getTimer () - this.time < 300) {
                this._xscale *= -1;
        } else {
                this.startDrag ();
        }
        this.time = getTimer ();
};
mc.onRelease = mc.onReleaseOutside = function () {
        stopDrag ();
};


Dear.D 22.05.2008 17:14

круто.
Мож ну их эти учебники. У меня мозг раком встал.

Alex_beginner 22.05.2008 18:08

Если нужно чтобы _xscale *= -1 (двойной щелчок) следовало сразу же за событием onPress (одинарный щелчок), то безусловно код iNils выполняет это как нельзя лучше. Однако, для раздельного использования
этих моментов нужен немного другой код. Предлагаю вариант. Не бог весть что, но работает:

Код:

var ID:Number=0;
var clickNum:Number=0;

myClip.onPress = function():Void
{
        clickNum++;
        if (ID==0) ID=setInterval(myFunc,100);
}

function myFunc():Void
{
        clearInterval(ID);
        ID=0;
        if (clickNum==2)
        {
                myClip._xscale+=100;
        }else
        {
                myClip.startDrag();
        };
        clickNum=0;
}



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

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