Форум 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=93373)

Snut 20.03.2007 00:39

Групповое зуммирование
 
Столкнулся с проблеммой, есть несколько объектов ориентированных относительно друг друга, каждый объект кликабелен, есть проблема, нада зазуммировать это, плавно, кнопкой, без разницы, закидовать в 1 мувиклип - толку - нет, ибо понятно дело становится некликабельно, сводить точки привязки все в одно место муторно ибо объектов > 150? програмно расставить - тож не судьба, подскажите как сделать, хотябы откуда начать, фак курил, поиск мучал, гугл не помог, хееелп, плиз.

etc 20.03.2007 00:59

Для начала надо перестать курить что-то ещё, что суметь внятно объяснить, что вы хотите.

Snut 20.03.2007 10:07

Цитата:

Сообщение от __etc
Для начала надо перестать курить что-то ещё, что суметь внятно объяснить, что вы хотите.

Попробую объяснить проще.

Есть карта мира, каждая страна должна быть кликабельна, но карта мира должна иметь функции зуммирования и передвижения, вот почему встал вопрос групового зуммирования....

Код:

function zoom(mc, scale) {
        mc.onEnterFrame = function() {
                mcX = mc._xscale;
                mcY = mc._yscale;
                speed = 0.1
                if (mcX != scale) {
                        if (mcX<scale) {
                                mc._xscale += mc._xscale*speed;
                                mc._yscale += mc._yscale*speed;
                        }
                        else {
                                mc._xscale -= mc._xscale*speed;
                                mc._yscale -= mc._yscale*speed;
                        }
                } else {
                        stop();
                }
        };
        trace(mcX); //182.238997252842 вот такое выдает, с разными вариациями, вообщем нет целого числа, в чем моя ошибка?
}

but50.onRelease = function() {
        zoom(usa, 50);
        zoom(rus, 50);
        zoom(jap, 50);
        zoom(ger, 50);
        zoom(aus, 50);
};
but100.onRelease = function() {
        zoom(usa, 100);
        zoom(rus, 100);
        zoom(jap, 100);
        zoom(ger, 100);
        zoom(aus, 100);
};
but200.onRelease = function() {
        zoom(usa, 200);
        zoom(rus, 200);
        zoom(jap, 200);
        zoom(ger, 200);
        zoom(aus, 200);
};


iNils 20.03.2007 10:35

Поместить все в один клип и зумировать его, то есть предка.

Snut 20.03.2007 10:45

Цитата:

Сообщение от iNils
Поместить все в один клип и зумировать его, то есть предка.

А разве будет кликабельно?
я вот что-то сомневаюсь....
но ща попробую

//кликабельно

оно дергается, не достигается точное значение, непойму из-за чего.... в чем моя ошибка... в ДНК - не принимается)

//Запутался с адресацией

есть объект map в нем куча мувиков (>150) как обратиться ко всем внутри map сразу? пробывал и map.call и map.apply не выходит.... помогитя...

etc 20.03.2007 13:40

Зачем? Что не кликабельно? В map все кликабельно.
Какое точное значение?

Snut 20.03.2007 14:50

Цитата:

Сообщение от __etc
Зачем? Что не кликабельно? В map все кликабельно.
Какое точное значение?

Ну чтож, разложу все по полочкам, дабы и самому не запутаться.
1) пихаем карту мира в мувик map, каждая страна мувиклипом, всяческие атрибуты типо всплывающей подсказки. ссылки на клик и т.п. работают
2)но осталась проблема группового зуммирования и масштабирования. Есть 5 кнопок, а именно: but25, but50, but100, but200, but400, при нажатии на любую из них мувик должен плавно масштабироваться с указаным на кнопке значением, реализовал вот так:

Код:

speed = 0.1
function zoom(mc, scale) {
        mc.onEnterFrame = function() {
                mcX = mc._xscale;
                mcY = mc._yscale;
                if (mcX != scale) {
                        if (mcX<scale) {
                                mc._xscale += mc._xscale*speed;
                                mc._yscale += mc._yscale*speed;
                        } else {
                                mc._xscale -= mc._xscale*speed;
                                mc._yscale -= mc._yscale*speed;
                        }
                } else {
                        stop();
                }
        };
}

but25.onRelease = function(){
zoom(map, 25);
}

but50.onRelease = function(){
zoom(map, 50);
}
//  ----**---- на все кнопки - почти одинаково.
but200.onRelease = function(){
zoom(map, 200);
}

ну таки чито, нажимаем на кнопачку (например 50%)все это масштабируется до значения 50%+-~3% и колыхается пытаясь увеличится или уменьшиться до 50% но мувик упорно не попадает четко в значение 50, хотя по логике - должен.

3) зачем мне лезть внутрь map? будет еще подгружаться XML который буит парсится и раскидывать ссылки по странам, учитывая их ID, но это не главное, нужно же еще реализовать перемещение карты влево, вверх, вниз, вправо, попытался реализовать следующим образом:
создал полупрозрачные кнопочки по краям карты и соответственно с именами scrLeft, scrUp и т.д. для них

Код:

scrLeft.onRollover = function(){
//вот тут то и возникает загвоздка, понятно ячто нада одновременно все клипы внутри map передвинуть на одно и тоже расстояние, но прописывать их каженную поименно - гикнешься, поэтому и задал вопрос как обратиться сразу ко всем мувикам внутри какого-то клипа, возможно ли это?
//ну а условие

this.map.не_знаю_как_обратиться.onEnterFrame = function(){
this.map.не_знаю_как_обратиться._x -= this.map.не_знаю_как_обратиться._x*speed;
}
}

просьба сильно не бить....

etc 20.03.2007 14:56

Я бы вам посоветовал использовать класс Tween или его аналоги для этого. И во время выполнения твина блокировать кнопки масштабирования.

Snut 20.03.2007 18:36

твин, ну как мысль..... но проще то так, помоему, нет?

etc 20.03.2007 18:50

Лучше, а не проще.


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

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