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

Nemoxp 23.05.2006 18:36

Блокировка кнопка в нужном кадре
 
Уважаемые участники форума! Я, как начинающий пользователь флеш технологий и не достаточно хорошо разбирающийся в программе Макромедиа Флеш, прошу у вас помощи в расшифровке скрипта, использующийся для управления кнопкой во флеш ролике. Суть такова: кнопка к которой он применяется, в программе на стадии разработки ролика, содержится не в каждом фрейме, а распространяется на все сразу, как бы одним сплошным роликом лежит в отдельном слое; этот скрипт проще говоря, можно найти в одном из шаблонов презентаций в самой программе (File>>New>>Template>>Presentations), который вписан в первый фрейм самого верхнего слоя "actions". (на сколько я разобрался, кнопки листания страниц презентации закреплены в этом скрипте и отключаются автоматически кнопки "вперед" и "назад" ,в зависимости твоего местонахождении в презентации, будь то первая или последняя ее страницы). Я прошу вас в общих чертах описать принцип действия скрипта, но желательно хотелось подробнее; почему "отключаются" кнопки и какое именно место скрипта управляет данным процессом. Заранее великодушно благодарю и привожу данный скрипт ниже!

Код:

// If not defined yet,
if (isLoaded == undefined) {
       
        // Routine to move playhead to a new frame
        var updateFrame = function (inc) {
               
                var newFrame = _currentframe + inc;
                gotoAndStop(newFrame);
       
                if (_root._currentframe == 1) {
                        backBtn._alpha = 50;
                        backBtn.enabled = false;
                } else {
                        backBtn._alpha = 100;
                        backBtn.enabled = true;
                }
                if (_root._currentframe == _root._totalframes) {
                        forwardBtn._alpha = 50;
                        forwardBtn.enabled = false;
                } else {
                        forwardBtn._alpha = 100;
                        forwardBtn.enabled = true;       
                }
        }


        // When the forward button is pressed
        forwardBtn.onPress = function () {
                updateFrame(1);
        }

        // When the back button is pressed
        backBtn.onPress = function () {
                updateFrame(-1);
        }

        // When the keyboard keys are pressed
        var keyListener = new Object();
        keyListener.onKeyDown = function () {
                if (Key.isDown(37)) {
                        // Left
                        updateFrame(-1);
                } else if (Key.isDown(38)) {
                        // Up
                        updateFrame(-(_currentframe-1));
                } else if (Key.isDown(39)) {
                        // Right
                        updateFrame(1);
                } else if (Key.isDown(40)) {
                        // Down
                        updateFrame(_totalFrames + 1);
                }
        }
        Key.addListener(keyListener);       


        // Call updateFrame at first to get button states correct at start
        updateFrame();       
}

// Set loaded flag to prevent redefinition
this.isLoaded = true;
stop();


Usnul 23.05.2006 23:24

1) код не форматированный (читать сложно)
2) название топика (читай правила)

aksios 23.05.2006 23:33

Учи англицкий - там все подробно закоментировано, а мы тут не бюро перевода.

FK2703 03.05.2008 05:59

у меня похожая проблема. Обычная Standard Presentation из Flash 8

Нужно, чтобы на 20ом слайде кнопка "вперёд" была неактивна. Пытался модифицировать вот так:
Код:

function updateButtons() {
        // Check for first screen condition
        if (this.firstSlide  == this.currentSlide )
        {
                backBtn.enabled = false;
                backBtn._alpha = 50;
        }
        else
        {
                backBtn.enabled = true;
                backBtn._alpha = 100;
        }
       
        if (this.slide20 = this.currentSlide)
        {
                forwardBtn.enabled = false;
                forwardBtn._alpha = 50;
        }
                               
        // Check for first screen condition
        if (this.lastSlide  == this.currentSlide)
        {
                forwardBtn.enabled = false;
                forwardBtn._alpha = 50;
        }
        else
        {
                forwardBtn.enabled = true;
                forwardBtn._alpha = 100;
        }         
}

this.revealChild = function ()
{
        updateButtons();
}

this.addEventListener("revealChild", this);



в лучшем случае - просто не работает. В худшем - различные ошибки. Что я принципиально делаю не так?


ЗЫ форматировать не получилось из-за того, что движок форума режет отступы(

Fernando Costa 03.05.2008 22:10

може тут
Код:

if (this.slide20 = this.currentSlide)
Код:

if (this.slide20 == this.currentSlide)

FK2703 03.05.2008 22:28

уже пробовал( не получается(

FK2703 11.05.2008 15:17

ещё актуально. Очень(


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

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