75 уроков по Photoshop на русском языке


Создаем полосу прокрутки в Flash МХ - часть 3




Экспортируйте клип и понажимайте кнопки - они работают.

Убедитесь, что текст движется, когда вы нажимаете кнопку. Для верности добавьте этот код ко второму кадру над play() action:

if (still_pressed) {
scrollIt();

Перейдем к следующему этапу.

Кнопка прокрутки

Нарисуйте прямоугольник или квадрат и преобразуйте его в кнопку. Кнопка должна быть такой же ширины, как и полоса прокрутки. Дайте кнопке имя "thumb_btn" и нажмите F8. В результате появится клип с кнопкой. Назначьте ему имя "scroll_thumb". Убедитесь, что он есть только во втором и третьем кадрах, так же как стрелки и полоса. Поместите его прямо под кнопкой "вверх" на полосе прокрутки - это его начальное положение.

Чтобы кнопку можно было перетаскивать и соответственно перемещать текст, мы добавим в кадр "functions" следующий код:

scroll_thumb.initiate = function() {
this.initiated = true;
this.min_y = this._y;
this.max_y = this.min_y + (scroll_track._height - up_arrow._height - this._height/2) + 1;
this.total_travel = Math.abs(this.max_y - this.min_y);
this.inc = Math.floor(this.total_travel/w_field.maxscroll);
}
scroll_thumb.drag = function() {
this.startDrag(false, this._x, this.min_y, this._x, this.max_y);
if (!this.org_y) {
this.org_y = this._y;
}
dragging = true;
this.onEnterFrame = whileDragging;
}
scroll_thumb.thumb_btn.onPress = function () {
scroll_thumb.drag();
}
scroll_thumb.thumb_btn.onRelease = function () {
dragging = false;
pressed = false;
still_pressed = false;
scroll_thumb.stopDrag();
scroll_thumb.onEnterFrame = null;
}
scroll_thumb.checkPos = function () {
if (this._y > this.max_y) {
this._y = this.max_y;
} else if (this._y < this.min_y) {
this._y = this.min_y;
}
}
function whileDragging() {
if (dragging) {
var moved = this._y - this.org_y;
if (Math.abs(moved) >= this.inc) {
if (moved > 0) {
pressed = 1;
} else {
pressed = -1;
}
this.org_y = this._y;
scrollIt();
if (Math.abs(this._y - this.max_y) < 1) {
w_field.scroll = w_field.maxscroll;
} else if (Math.abs(this._y - this.min_y) < 1) {
w_field.scroll = 1;
}
} else {
pressed = 0;
}
}
}




Начало  Назад  Вперед