Форум 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)
-   -   опять про toggle, функцию можно зауниверсалить? (http://www.flasher.ru/forum/showthread.php?t=79745)

FreshFlashEr 15.05.2006 10:29

опять про toggle, функцию можно зауниверсалить?
 
Знаю, не первый, кто спрашивает про переключатель, но...
Поиск юзал, что МНЕ надо не нашёл :(
Устал уж сам додумывать, что делаю не так, вот,собссно и вопрос:
вроде, как обычно —
Есть состояния №1 и №2.
если №1,то идти к состоянию №2.
если №2, то к №1.
Вроде вот так, а на практике несовсем. Запутался вконец!
Пожалуйста, помогите хоть с таким простым примером разобраться,
(а вообще хотел с плавным движением туда-сюда Movik-а сделать), но это потом...

Nirth 15.05.2006 10:35

перенес в раздел для новеньких и ленивеньких

FreshFlashEr 15.05.2006 10:56

Спасибо!
"новеньких"—согласен. Ленивеньких—нет! Скорее—тупеньких.:confused:

FreshFlashEr 15.05.2006 11:02

короче, во у меня чё:

Код:

var stateOne=T_btn._y=50;
var stateTwo; //=20; <--это здесь задавать нужно?
targety=T_btn._y;
speed=2;

T_btn.onPress = function () {
if (T_btn._y=stateOne){
        _root.onEnterFrame=function(){
        T_btn._y+=(targety-_y)/speed;
        }
}else if(T_btn._y=100) {
        delete _root.onEnterFrame;
        }

Вот такая каша!
Понимаю, ПРОФям —влом, может кто (без предвзятого отношения к ламерам) поможет? :drinks:

iNils 15.05.2006 11:50

1. При сравнении надо двойной знак равно использовать ==, а не одинарный.
2. Если тебе не влом попробуй еще раз объяснить что нужно, но только нормально.

FreshFlashEr 15.05.2006 12:43

Спасибо! (раз).
Стараюсь объяснить:

Есть у меня кнопка.
Исходное состояние (stateOne) с координатами (в переменной).
При нажатии хотел бы (c easing-ом) – поплыла она к stateTwo
(с заданными заранее координатами).
Доехала и застопорилась (delete _root.onEnterFrame-не срабатывает, как плыла, так и плывёт дальше:( ).
Вот, застопорилась (встала в состояние stateTwo).
При повторном нажатии поехала обратно к исходному положению (stateOne).
Ну простите Вы ламера, пожалуйста! :boredom:
P.S. Уже просто интересно -КАК? Tweening-ом то, конечно–без проблем.
Но делается же это скриптом?! Вы объясните — на всю жизнь запомню!

iNils 15.05.2006 13:13

Всавь во внутрь клипа который хочешь двигать, свой код убери.
Код:

//// меняя число элементов массива меняешь число шагов в цикле, в данном примере их 3
this.arrayMove = [this._y, this._y + 100, this._y - 100];
this.position = 0;
this.speed = 5;
this.onRelease = function () {
        this.position++;
        if (this.position == this.arrayMove.length) {
                this.position = 0;
        }
        trace (this.position);
        this.onEnterFrame = this.moveClip;
};
this.moveClip = function () {
        this._y += (this.arrayMove[this.position] - this._y) / this.speed;
        if (Math.abs (this.arrayMove[this.position] - this._y) < 0.5) {
                this._y = this.arrayMove[this.position];
                delete this.onEnterFrame;
        }
};


FreshFlashEr 15.05.2006 13:31

Спасибо! Спасибо! Спасибо! :drinks:
Пошёл, пробовать и учиться.
p.s. Когда-нибудь и я стану мастером! :bb:


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

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