Уроки Flash: Эффект смены картинкиИсточник: demiart bu_blik
1.Создаём новый документ, oткрываем Document Properties (CTRL+J). Размер ставим 420х320 и frame rate ставим 24 fps. 4. Рисуем еще один прямоугольник, другого цвета, рядом с уже нарисованным. 5.Выделяем наш новый прямоугольник и в Properties panel ставим размер 400х300 pix. 6. Размещаем етот прямоугольник в центре сцены при помощи Align panel. 7. Дальше кликаем в любом месте, за сценой, чтобы снять выделение с фигуры,затем выделяем снова и удаляем. У нас осталась рамка шириной 20pix. 8. Блокируем етот слой и создаем новый. Назовем новый слой image 1. Опускаем етот слой в панели слоев вниз. 9. Идем File > Import > Import to Library выбераем 2 любые картинки на свой вкус. 14.Рисуем прямоугольник 400х300. Выравниваем по вертикали.Смотри рисунок. 15. Теперь, надо выровнять его по горизонтали так что-бы правый край прямоугольника совпадал с левым краем картинки. Если бы Вы поместили прямоугольник правильно, то его координата X должна бы быть-390. 16.Конвертируем прямоугольник в movie clip(F8). И в Properties panel даем instance name imageMask. 18.Создаем новый, слой сверху всех остальных и назовем actions. Блокируем слой. CODE speed = 14; imageMask.onEnterFrame = function() { if ((this._width + this._x) < _xmouse) { if (this._width + this._x >= _xmouse - 0.8) { this._x = _xmouse - this._width; } else { this._x += (_xmouse - (this._width + this._x)) / speed; } } else if ((this._width+this._x) > _xmouse) { if ((this._width + this._x) <= _xmouse + 0.8) { this._x = _xmouse - this._width; } else { this._x -= ((this._width + this._x) - _xmouse) / speed; } } else { this._x = _xmouse - this._width; } }; Объяснение к коду. CODE speed = 14; это скорость,чем меньше номер тем быстрее движение маски.
CODE
if ((this._width + this._x) < _xmouse) { то, что должно быть выполнено в случае, когда маска с левой стороны мыши.
CODE
if (this._width + this._x >= _xmouse - 0.8) { this._x = _xmouse - this._width; } else { Если рассрояние правого края маски по отношению к мыши меньше или равно 0,8 ,то положение правого края маски должно соответствовать положению мыши.
CODE
this._x += (_xmouse - (this._width + this._x)) / speed; } В любом другом случае(тоесть когда расстояние больше 0,8) _x положение маски будет увеличиватья постоянно.
CODE
else if ((this._width+this._x) > _xmouse) { if ((this._width + this._x) <= _xmouse + 0.8) { this._x = _xmouse - this._width; } else { this._x -= ((this._width + this._x) - _xmouse) / speed; } } else { this._x = _xmouse - this._width; } }; Механизм тот же, только маска движется в лево. Ну вот и все. |