Управление сценой с помощью ActionScript
В этом уроке мы рассмотрим 2 вопроса:
- Управление сценой с помощью ActionScript
- Дополнительная информация
Во Flash CS5 Professional, так же как и во всех предыдущих версиях этой программы, сцена (Stage) представляет собой место, где Вы можете рисовать и помещать объекты. Во время воспроизведения фильма Flash player'ом они визуализируются. В ActionScript 3.0 тоже есть класс Stage, который представляет из себя контейнер, содержащий все объекты предназначенные к показу (display list) или видимые во Flash Player'е. Технически это немного разные вещи, но в рамках этого курса можете считать, что это примерно одно и тоже.
Экземпляр stage класса Stage автоматически создается во время загрузки фильма во Flash Player. Этот экземпляр содержит несколько важных свойств и методов, которые Вы можете использовать в своем коде. Например,
stage.stageWidth stage.stageHeight
могут использованы для определения ширины и высоты сцены (Stage) или местоположения других экземпляров относительно ее размеров.
Например, экземпляр myRec можно разместить ровно посередине сцены, определив его свойство х как половину ширины сцены, а свойство у как половину высоты сцены:
myRec.x = stage.stageWidth / 2; myRec.y = stage.stageHeight / 2;
В примере, который мы рассмотрим ниже клип будет помещен ровно посередине сцены, а остальные 4 относительно него по «сетке».
Управление сценой с помощью ActionScript
Размещение экземпляров на сцене
Создайте 5 экземпляров MovieClip на сцене.
Присвойте каждому экземпляру индивидуальное имя. Например, myRec1, myRec2... myRec5.
Позиционирование экземпляров с помощью кода
Создайте новый слой.
Щелкните на первом кадре нового слоя.
Откройте панель Actions (F9).
Назначьте местоположение первого экземпляра:
myRec1.x = stage.stageWidth/2; myRec1.y = stage.stageHeight/2;
Назначьте местоположение второго экземпляра:
myRec2.x = myRec1.x + (myRec1.width + 5); myRec2.y = myRec1.y;
Назначьте местоположение третьего экземпляра:
myRec3.x = myRec1.x - (myRec1.width + 5); myRec3.y = myRec1.y;
Назначьте местоположение четвертого экземпляра:
myRec4.x = myRec1.x; myRec4.y = myRec1.y + (myRec1.height + 5);
Назначьте местоположение пятого экземпляра:
myRec5.x = myRec1.x; myRec5.y = myRec1.y - (myRec1.height + 5);
Нажмите Ctrl + Enter. Ролик начнет воспроизводиться.
В этом примере прямоугольники были размещены по «сетке» с центром в середине сцены.
Дополнительная информация
У класса Stage есть свойство frameRate, которое управляет скоростью воспроизведения фильма. Значение этого свойства можно изменять во время показа фильма! То есть Вы можете либо замедлять, либо ускорять скорость показа.
btn_SpeedUp.addEventListener(MouseEvent.CLICK, speedUp); btn_SlowDown.addEventListener(MouseEvent.CLICK, slowDown); function speedUp(event:MouseEvent):void { stage.frameRate = stage.frameRate + 5; } function slowDown(event:MouseEvent):void { stage.frameRate = stage.frameRate - 5; }