Форум 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)
-   -   new Tween - как отменить? (http://www.flasher.ru/forum/showthread.php?t=92555)

Olesolo 28.02.2007 15:49

new Tween - как отменить?
 
Добрый день, уважаемые.

при нажатии на эту кнопку x1 - картинка зумируеться до размера 325х325 и выстраивается по координатам х=у=162.
Код:

x1.onRelease = function() {
        var s1:Tween = new Tween(mash.shkala, "_yscale", Strong.easeOut, mash.shkala._height*2, 100, 2, true);
        var x1:Tween = new Tween(mpol.pic, "_x", Strong.easeOut, mpol.pic._x, 162, 0.8, true);
        var y1:Tween = new Tween(mpol.pic, "_y", Strong.easeOut, mpol.pic._y, 162, 0.8, true);
        var w1:Tween = new Tween(mpol.pic, "_width", Strong.easeOut, mpol.pic._width, 325, 2, true);
        var h1:Tween = new Tween(mpol.pic, "_height", Strong.easeOut, mpol.pic._height, 325, 2, true);
};


а это другая кнопка go_ban, которая эту же картинку зумит до 650х650 и выстраивает по х=у=325.
Код:

go_ban.onRelease = function() {
        mpol.pic["mpol_"+hint]._visible = false;
        hint = "a2";
        mpol.pic["mpol_"+hint]._visible = true;
        var x1:Tween = new Tween(mpol.pic, "_x", Strong.easeOut, mpol.pic._x, 325, 2, true);
        var y1:Tween = new Tween(mpol.pic, "_y", Strong.easeOut, mpol.pic._y, 325, 2, true);
        var s1:Tween = new Tween(mash.shkala, "_yscale", Strong.easeOut, mash.shkala._height*2, 150, 2, true);
        var w1:Tween = new Tween(mpol.pic, "_width", Strong.easeOut, mpol.pic._width, 650, 2, true);
        var h1:Tween = new Tween(mpol.pic, "_height", Strong.easeOut, mpol.pic._height, 650, 2, true);
};


так вот, проблема в том, что если я нажму вторую кнопку (go_ban) и потом быстро(пока не закончилась анимация go_ban) щелкну по первой (x1) то зум происходит нормально, но вот передвижение глючит. Вначале нормально с 325 до 162, но в конце резко сбрасывается снова на 325.

как с этим бороться? как то можно обнулить координаты предыдущего tween?

etc 28.02.2007 15:53

Хранить ссылки на них и стопить.

Olesolo 28.02.2007 16:30

хм.. не совсем понял.
пожалуйста, можешь пример привести как создать ссылку?

etc 28.02.2007 17:14

Создавать не локальную переменную с твином внутри функции, а глобальную относительно от этой функции. В другой функции стопить старые твины и забивать новыми (или не стопить, а сразу забить переменные новыми твинами).

Olesolo 28.02.2007 17:39

создал функцию.

Код:

function zooming() {
        var ts = new Tween(mash.shkala, "_yscale", Strong.easeOut, mash.shkala._height*2, ts1, 2, true);
        var tx = new Tween(mpol.pic, "_x", Strong.easeOut, mpol.pic._x, tx1, tx2, true);
        var ty = new Tween(mpol.pic, "_y", Strong.easeOut, mpol.pic._y, ty1, ty2, true);
        var tw = new Tween(mpol.pic, "_width", Strong.easeOut, mpol.pic._width, tw1, 2, true);
        var th = new Tween(mpol.pic, "_height", Strong.easeOut, mpol.pic._height, th1, 2, true);
}

и кнопка х1
Код:

x1.onRelease = function() {
        ts1 = 100; // размер шкалы маштаба
        tx1 = 162; // координаты куда двигать карту
        tx2 = 0.8; // скорость с которой двигать карту при перемещении
        ty1 = 162; // координаты куда двигать карту
        ty2 = 0.8; // скорость с которой двигать карту при перемещении
        tw1 = 325; // конечный размер карты при зуме - ширина
        th1 = 325; // конечный размер карты при зуме - высота
        zooming();
};

go_ban
Код:

go_ban.onRelease = function() {
        mpol.pic["mpol_"+hint]._visible = false;
        hint = "a2";
        mpol.pic["mpol_"+hint]._visible = true;
        ts1 = 150; // размер шкалы маштаба
        tx1 = 325; // координаты куда двигать карту
        tx2 = 2; // скорость с которой двигать карту при перемещении
        ty1 = 325; // координаты куда двигать карту
        ty2 = 2; // скорость с которой двигать карту при перемещении
        tw1 = 650; // конечный размер карты при зуме - ширина
        th1 = 650; // конечный размер карты при зуме - высота
        zooming();
};


таже проблема :\
или я неправильно понял?...
но почему же не работает? я заменяю значения на новые, а оно ДОвыполняет старые..

etc 28.02.2007 18:15

Неправильно понял.
Речь шла о переменных-ссылках на твины. В функции zooming они снова локальные.

Olesolo 28.02.2007 18:37

хм..
честно говоря смутно понимаю, но попробую перебрать разные способы...

если не трудно, то кинь или маленький пример или ссылку где почитать про это можно.

etc 28.02.2007 20:35

Нет у меня ни примеров, ни ссылок.
Может стоит для начала понять, что такое локальная переменная, что такое локальная?

Код:

function zooming() {
        ts = new Tween(mash.shkala, "_yscale", Strong.easeOut, mash.shkala._height*2, ts1, 2, true);
        tx = new Tween(mpol.pic, "_x", Strong.easeOut, mpol.pic._x, tx1, tx2, true);
        ty = new Tween(mpol.pic, "_y", Strong.easeOut, mpol.pic._y, ty1, ty2, true);
        tw = new Tween(mpol.pic, "_width", Strong.easeOut, mpol.pic._width, tw1, 2, true);
        th = new Tween(mpol.pic, "_height", Strong.easeOut, mpol.pic._height, th1, 2, true);
}



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

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