Форум 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)
-   -   Убирание движения после нажатия на кнопку (http://www.flasher.ru/forum/showthread.php?t=132560)

tgonta 14.11.2009 19:40

Убирание движения после нажатия на кнопку
 
И ещё один вопрос: как убрать движение мыши при нажатии на кнопку? так не получается:
Код AS1/AS2:

SvechaBox.onPress = function() {
    Candle._x = _root._xmouse;
    Candle._y = _root._ymouse;
        this.onMouseMove = function(){
            Candle._x = _root._xmouse;
            Candle._y = _root._ymouse;
        }
        dragging = true;
        if(dragging = false) {
                delete this.onMouseMove;
        }
}
btn1.onPress = function() {
        if(dragging = true) {
                dragging = false;
            Candle._x = _root._xmouse;
            Candle._y = _root._ymouse;
        }
}


mooncar 14.11.2009 19:44

1. Ошибка синтаксиса. Условия пишутся вот так:
Код AS1/AS2:

if(dragging == false)

2. даже с учетом ошибки синтаксиса есть еще ошибка логики. Вот тут
Код AS1/AS2:

        dragging = true;
        if(dragging == false) { //исправлен синтаксис
                delete this.onMouseMove;
        }

условие dragging == false никогда не выполнится, в строке перед условием dragging всегда назначается true.

tgonta 14.11.2009 20:04

Код AS1/AS2:

SvechaBox.onPress = function() {
    Candle._x = _root._xmouse;
    Candle._y = _root._ymouse;
        this.onMouseMove = function(){
            Candle._x = _root._xmouse;
            Candle._y = _root._ymouse;
        }
        dragging = true;
        btn1.onPress = function() {
                if(dragging == true) {
                        dragging = false;
                    Candle._x = _root._xmouse;
                    Candle._y = _root._ymouse;
                }
        }
        if(dragging == false) {
                delete this.onMouseMove;
        }
}

Всё равно не хочет...

mooncar 14.11.2009 20:13

Выложите.

tgonta 14.11.2009 20:16

Код AS1/AS2:

if(dragging == true) {
                        dragging = false;

вроде есть...

а как сделать, чтобы условие выполнялось?

mooncar 14.11.2009 20:27

Решение, видимо, несложно, просто где у вас SvechaBox, Candle и btn1 относительно друг друга - не очень понятно, опишите или выложите.

tgonta 14.11.2009 20:29

http://slil.ru/28203841 - вот эта часовенка...

mooncar 14.11.2009 20:49

Если для одной свечи:
Код AS1/AS2:

SvechaBox.onPress = function() {
    dragging = true ;
    moveCandle ();
  Candle.onMouseMove = moveCandle;
}       
 
function moveCandle () {
    Candle._x = _root._xmouse;
    Candle._y = _root._ymouse;
}
 
 
btn1.onPress = function() {
        if(dragging) {
                dragging = false ;
                delete Candle.onMouseMove ;
        }
}

Если для любой свечи, надо доработать.

PS. У вас в основании мувика-свечи есть невидимая кнопка - она мешает нажать на кнопку-подсвечник.
Если ее убрать, сделать несколько кнопок-подсвечников btn1, btn2 и тд. до 21, то можно реализовать алгоритм для нескольких свечей:
Код AS1/AS2:

var count:Number = 0;
var currentCandle:MovieClip ;
var dragging:Boolean = false ;
 
SvechaBox.onPress = function() {
        var num:Number =  count++;
        dragging = true ;
        currentCandle = Candle.duplicateMovieClip('candele' + num, num);
        currentCandle.onMouseMove = moveCandle;       
        moveCandle ();
}       
 
for (i = 1; i <= 21; i++) {
        this['btn' + i].onPress = stopMoveCandle ;
}
 
function moveCandle () {
        currentCandle._x = _root._xmouse;
          currentCandle._y = _root._ymouse;
}
 
function stopMoveCandle () {
        if(dragging && !this.ready) {
                delete currentCandle.onMouseMove;
                this.ready = true ; //предотвращает вставку свечи в подсвечник уже со свечой
                dragging = false ;               
        }
}


tgonta 16.11.2009 20:50

mooncar

Попробовал сделать несколько свечек и не получилось. Жму - а свечу двигают.

mooncar 16.11.2009 23:52

Посмотрите:
http://slil.ru/28213158


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

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