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

Keyles 16.04.2012 17:12

Управление скроллингом через внешние кнопки
 
Вложений: 2
Добрый день.

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

Попробовала через visible, но как ни пыталась, как не прописывала на кнопках скрипты, они не работают.
Выкладываю исходник, чтобы долго не объяснять ход работы скрипта.

mooncar 16.04.2012 19:04

Пересохраните помладше, у вас версия 5.5 - не у всех это есть.

Keyles 16.04.2012 21:23

Заменила.

Keyles 23.04.2012 15:09

Ну как, может кто-нибудь знает в чем дело?

mooncar 23.04.2012 18:57

Вложений: 1
Основная причина вашей трудности - вы не знали о свойстве spContentHolder, которое есть у ScrollPane.
Оно содержит ссылку на загруженный в него контент.

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

Решение:
1. Называете кнопки, например, btn1...btn6
2. Код в кадре на главном таймлайне:

Код AS1/AS2:

var spContent:MovieClip = scroller1.spContentHolder; //ссылка на контент подгружаемого в SP мувика
 
btn1.onRelease = function  ()
{
        spContent.tabll.red1._visible = true ;
};

... и т.д.

Полное решение. Оптимизировано циклом назначение обработчиков onRelease и скрывается предыдущий показанный контент:

Код AS1/AS2:

var spContent:MovieClip = scroller1.spContentHolder;
var currentNumber:Number ; //переменная будет содержать номер текущего
 
for (i = 1; i <= 6; i++)
{
        var btn:MovieClip = this['btn' + i];
        btn.num = i;
        btn.onRelease = btnRelease;
}
 
function  btnRelease ()
{
        //скрываем предыдущий
        if (currentNumber) spContent.tabll['red' + currentNumber]._visible = false ;
 
        //номер нажатого
        var num:Number = this.num;
 
        //проявляем
        spContent.tabll['red' + num]._visible = true ;
 
        currentNumber = num;
}

Нужно только переименовать вложенные мувики red так, чтобы номер кнопки соответствовал показываемому.
То есть btn1 - red1 и т.д.

См. вложение.

Keyles 23.04.2012 20:05

Отлично. Спасибо. Пойду разберусь:)


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

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