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();
// 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();