Это выражение создаст новый клип clip2
, продублировав уже имеющийся на рабочем листе клип clip1, и поместит его "над" всеми клипами.Метод getinstanceAtDepth
возвращает ссылку на клип, имеющий заданный порядок перекрытия. Значение порядка перекрытия передается в качестве единственного параметра.Метод swapDepths
меняет значения порядка перекрытия двух клипов местами. Формат его вызова таков:<Клип 1>.
swapDepths("<Клип 2>"|<Порядок перекрытия>);В качестве параметра этого метода может быть передан путь второго клипа или значение нужного порядка перекрытия. Причем путь второго клипа передается как строка.
Вот три примера использования этого метода:
_root.car.swapDepths("_root.tractor");
_root.car.swapDepths (10);
_root.car.swapDepths(_root.tractor.getDepth());
Получение служебной информации о клипе
Объект MovieClip
поддерживает набор особых свойств, доступных только для чтения. Эти свойства возвращают различную служебную информацию, зачастую не относящуюся к самому клипу. Ниже перечислены некоторые из них.Свойство _name
возвращает имя клипа, заданное с помощью панели Properties, в строковом виде.Свойство _target
возвращает полный путь клипа в строковом виде.Свойства _xmouse
и _ymouse возвращают соответственно горизонтальную и вертикальную координаты курсора мыши относительно точки отсчета клипа. Пользуясь этими свойствами, можно контролировать перемещения мыши. Например:onClipEvent(enterFrame) {
myCursor._x = _root._xmouse;
myCursor._y = _root._ymouse;
}
Этот сценарий заставляет вложенный клип myCursor
перемещаться вслед за курсором мыши. Фактически сам клип будет вести себя как курсор мыши.Свойство _current frame
возвращает номер кадра клипа, на котором в данный момент стоит бегунок (фактически номер воспроизводимого в данный момент кадра).Свойство _totalframes
возвращает общее количество кадров, содержащихся во внутренней анимации клипа.Свойство _url
возвращает интернет-адрес, с которого был загружен клип или фильм. Иногда это тоже может пригодиться.Свойство _framesloaded
возвращает количество кадров клипа, данные которых проигрыватель Flash уже загрузил. А методы getBytesLoaded и getBytesTotal помогут узнать соответственно количество загруженных байтов клипа и полный размер клипа в байтах. Используя их, мы можем создавать индикаторы загрузки клипа или фильма.Реализация drag'n'drop
Термином "drag'n'drop"
("тащи и бросай") обозначают целый набор операций, связанных с перетаскиванием каких-либо объектов операционной системы (файлов, папок, ярлыков), системных или прикладных программ. Так, во Flash с помощью перетаскивания изменяется местоположение фрагментов изображения и бегунка панели Timeline.Мы также можем реализовать операции "drag'n'drop" в своих фильмах Flash. Сейчас мы выясним, как это сделать.
Первое, что нам понадобится, — это действие startDrag
. Оно делает клип доступным для буксировки с помощью мыши. Формат вызова действия такой:startDrag(<Клип>,
[<За центр>, <Х1>, , <Х2>, >]);В качестве единственного обязательного параметра действию передается путь клипа, который нужно сделать перетаскиваемым. А вот об остальных пяти необязательных параметрах давайте поговорим подробнее.
Второй параметр (за центр
) имеет логический тип. Он позволяет указать точку, к которой будет автоматически "приклеиваться" курсор мыши при перетаскивании. Это может быть точка, в которой пользователь щелкнул мышью (значение false), или центр клипа (значение true).Остальные четыре параметра позволяют описать прямоугольную область, внутри которой можно будет перетаскивать клип и за пределы которой он не сможет выйти. Через параметры X1
и Y1 задаются горизонтальная и вертикальная координаты левого верхнего угла этой области, а за координаты правого нижнего угла "отвечают" параметры Х2 и Y2. Все координаты задаются относительно внешнего клипа.Вот два примера применения действия startDrag
:startDrag(_root.car);
startDrag(_root.car, true, 100, 100, 500, 500);
Первое выражение просто делает клип перетаскиваемым. При этом пользователь сможет "ухватить" его мышью и перетащить на новое место. Второе же выражение, кроме этого, задает дополнительные параметры перетаскиваемого клипа.
Вместо действия startDrag
можно использовать одноименный метод объекта movieClip:.startDrag([<За центр>, [<Х1>, , <Х2>, >]]);