<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.flashist.ru" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Mouse</title>
 <link>http://www.flashist.ru/taxonomy/term/43</link>
 <description>Представление таксономии с учетом глубины 0.</description>
 <language>ru</language>
<item>
 <title>Вращение колёсика мышки и перемотка</title>
 <link>http://www.flashist.ru/2007/12/08/vrashhenie-kolyosika-myshki-i-peremotka</link>
 <description>&lt;p&gt;&lt;h3&gt;Вопрос:&lt;/h3&gt;&lt;br /&gt;
Появилась такая задача. Есть муви клип, в котором фотки покадрово располагаются и надо, чтобы кадры сменялись с помощью колёсика мыши.&lt;br /&gt;
&lt;span style=&quot;font-weight:bold&quot;&gt;&lt;a href=&quot;http://flasher.ru/forum/showthread.php?t=105108&quot; class=&quot;bb-url&quot;&gt;Ссылка на вопрос »&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;h3&gt;Ответ:&lt;/h3&gt;&lt;br /&gt;
Задача, которую просят решить, немного необычная, но довольно простая. Необычная потому, что я никогда не сталкивался с подобной проблемой, и не видел, чтобы её где-нибудь описывали.&lt;/p&gt;

&lt;p&gt;&lt;h3&gt;Событие onMouseWheel&lt;/h3&gt;&lt;br /&gt;
Как вы, наверное, уже догадались, событие, которое отлавливает вращение колёсика мышки называется &lt;span style=&quot;font-weight:bold&quot;&gt;onMouseWhell&lt;/span&gt;. Собственно кроме этого события нам нужно знать только, как вообще происходит &lt;a href=&quot;http://www.flashist.ru/2007/11/29/vosproizvedenie-i-peremotka-movie-clip-obektov/&quot; class=&quot;bb-url&quot;&gt;смена кадров во Flash&lt;/a&gt;. Ничего сложного =) разбираем синтаксис:&lt;/p&gt;

&lt;p&gt;&lt;pre class=&quot;bb-code-block&quot;&gt;var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(varDelta:Number) {
        trace(“Движение колёсика “+varDelta);
};
Mouse.addListener(mouseListener);&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;1. &lt;span style=&quot;font-weight:bold&quot;&gt;var mouseListener:Object = new Object()&lt;/span&gt; — создаём объект, который будет «слушателем» события &lt;span style=&quot;font-weight:bold&quot;&gt;onMouseWheel&lt;/span&gt;. Не пугайтесь, если вам не известно слово «слушатель», просто нужно понять, что &lt;span style=&quot;font-weight:bold&quot;&gt;в Flash&lt;/span&gt; кроме основных событий, которые характерны для основных классов, существуют и другие, которые нельзя отловить без создания специального объекта, следящего за возникновением этих «других» событий. Грубо говоря, если событие &lt;span style=&quot;font-weight:bold&quot;&gt;onPress&lt;/span&gt; видят все объекты класса &lt;span style=&quot;font-weight:bold&quot;&gt;Movie Clip&lt;/span&gt;, то событие &lt;span style=&quot;font-weight:bold&quot;&gt;onMouseWheel&lt;/span&gt;, по-умолчанию, другие объекты не видят.&lt;br /&gt;
2. &lt;span style=&quot;font-weight:bold&quot;&gt;mouseListener.onMouseWheel = function(varDelta:Num…&lt;/span&gt; — это само событие &lt;span style=&quot;font-weight:bold&quot;&gt;onMouseWheel&lt;/span&gt;, которое возникает каждый раз при вращении колёсика мышки. Обратите внимание, что в скобках указана переменная &lt;span style=&quot;font-weight:bold&quot;&gt;varDelta&lt;/span&gt;. Эта переменная будет возвращать количественное значение «силы» вращения колёсика. Причём это значение &lt;span style=&quot;font-weight:bold&quot;&gt;всегда будет кратно 3&lt;/span&gt;. Если колёсико вращается вверх, то &lt;span style=&quot;font-weight:bold&quot;&gt;varDelta&lt;/span&gt; будет положительным, если вниз, то отрицательным. Другими словами &lt;span style=&quot;font-weight:bold&quot;&gt;varDelta&lt;/span&gt; может быть равна +3, +6, -6, -12, но не может быть равна 1 или 2.&lt;br /&gt;
3. &lt;span style=&quot;font-weight:bold&quot;&gt;Mouse.addListener(mouseListener)&lt;/span&gt; — «подписываем» созданный нами объект на событие &lt;span style=&quot;font-weight:bold&quot;&gt;onMouseWheel&lt;/span&gt;. Как я уже говорил выше, есть события, которые в Flash по умолчанию нельзя отловить. Это сделано с целью экономии ресурсов компьютера. Так вот, объект &lt;span style=&quot;font-weight:bold&quot;&gt;Mouse&lt;/span&gt; — это «генератор» событий, одним из которых является событие &lt;span style=&quot;font-weight:bold&quot;&gt;onMouseWheel&lt;/span&gt;. Функция &lt;span style=&quot;font-weight:bold&quot;&gt;addListener&lt;/span&gt; подключает к «генератору» событий «слушателя», который будет оповещён о наступлении событий.&lt;/p&gt;

&lt;p&gt;Вот и весь пример =) Кстати о примере, когда будете смотреть &lt;span style=&quot;font-weight:bold&quot;&gt;исходник и флешку к уроку&lt;/span&gt;, то как в режиме тестирования в Flash, так и при просмотре в браузере не забудьте клацнуть мышкой на тёмном фоне флешки, а уже потом крутить своё колёсико, иначе просто ничего не будет работать.&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-weight:bold&quot;&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flashist.ru/files/mouse/mousewheel.swf&quot; class=&quot;bb-url&quot;&gt;Сама флешка »&lt;/a&gt;&lt;/span&gt; | &lt;span style=&quot;font-weight:bold&quot;&gt;&lt;a href=&quot;http://www.flashist.ru/files/mouse/mousewheel.rar&quot; class=&quot;bb-url&quot;&gt;Исходник »&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
 <comments>http://www.flashist.ru/2007/12/08/vrashhenie-kolyosika-myshki-i-peremotka#comments</comments>
 <category domain="http://www.flashist.ru/taxonomy/term/8">FAQ</category>
 <category domain="http://www.flashist.ru/taxonomy/term/4">Flash</category>
 <category domain="http://www.flashist.ru/taxonomy/term/43">Mouse</category>
 <category domain="http://www.flashist.ru/taxonomy/term/12">Вопрос-Ответ</category>
 <category domain="http://www.flashist.ru/taxonomy/term/15">Исходники</category>
 <category domain="http://www.flashist.ru/taxonomy/term/16">Уроки</category>
 <pubDate>Thu, 05 Feb 2009 03:01:46 +0300</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">78 at http://www.flashist.ru</guid>
</item>
<item>
 <title>Заменяем стандартные курсоры во Flash</title>
 <link>http://www.flashist.ru/2008/01/15/zamenyaem-standartnye-kursory-vo-flash</link>
 <description>&lt;p&gt;&lt;h3&gt;Учимся изменять стандартные изображения курсоров&lt;/h3&gt;&lt;br /&gt;
Часто бывает, что в соответствии с задумками дизайна, или по другим причинам нам нужно изменить стандартное изображение &lt;span style=&quot;font-weight:bold&quot;&gt;курсора в Flash&lt;/span&gt; на другое, своё собственное. Допустим вы хотите сделать &lt;span style=&quot;font-weight:bold&quot;&gt;анимированный курсор&lt;/span&gt;, наподобие “песочных-часов”, что появляются в Windows при загрузке, или мелкий текст, который можно было бы просматривать в увеличенном виде под лупой, согласитесь, смотрелось бы не плохо, если бы курсором в этом случае выступало само увеличительное стекло. В общем &lt;span style=&quot;font-weight:bold&quot;&gt;применений такому эффекту в флешках&lt;/span&gt; можно найти море, а как вы будете его использовать — это уже совсем другой вопрос. Нашей задачей сегодня является разобрать, &lt;span style=&quot;font-weight:bold&quot;&gt;на примере Flash урока&lt;/span&gt;, как такой эффект создаётся. &lt;span style=&quot;font-weight:bold&quot;&gt;Исходники&lt;/span&gt; прилагаются.&lt;/p&gt;

&lt;p&gt;&lt;h3&gt;Разбираем всё по-полочкам на примерах&lt;/h3&gt;&lt;br /&gt;
Собственно, что нужно для превращения стандартного &lt;span style=&quot;font-weight:bold&quot;&gt;Flash курсора&lt;/span&gt;, в «супер-мега-курсор», которого ни у кого нет? Нужно для этого:&lt;/p&gt;

&lt;p&gt;1. а) Выключить старое изображение курсора;&lt;br /&gt;
2. б) Создать &lt;span style=&quot;font-weight:bold&quot;&gt;Movie Clip&lt;/span&gt; с новым изображением, и, каждый раз при передвижении мышки, присваивать ему координаты курсора.&lt;/p&gt;

&lt;p&gt;Как это делается? Ну, если вас пугает смена координат, то подробнее об этом вы можете почитать в статье, посвящённой &lt;a href=&quot;http://www.flashist.ru/2007/11/23/pogovorim-o-svojstvax-movie-clip-obektov-v-actionscript-20/&quot; class=&quot;bb-url&quot;&gt;основным свойствам Movie Clip объектов в Flash&lt;/a&gt;. А что касается “срытия” и “открытия” курсора, то для этого в Flash существует специальный метод объекта Mouse, точнее их даже два:&lt;/p&gt;

&lt;p&gt;1. &lt;span style=&quot;font-weight:bold&quot;&gt;Mouse.hide()&lt;/span&gt; — скрыть отображение курсора;&lt;br /&gt;
2. &lt;span style=&quot;font-weight:bold&quot;&gt;Mouse.show()&lt;/span&gt; — восстановить нормальное отображение курсора.&lt;/p&gt;

&lt;p&gt;Вот, собственно, и всё. Теперь осталось только создать нужные объекты на рабочем поле:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.flashist.ru/images/alter_cursor_2.png&quot; alt=&quot;&quot; class=&quot;bb-image&quot; /&gt;&lt;/p&gt;

&lt;p&gt;И написать код:&lt;/p&gt;

&lt;p&gt;&lt;pre class=&quot;bb-code-block&quot;&gt;/*
Сегодня мы научимся скрывать стандартное изображение курсора, и устанавливать любое
другое, которое нам понравится. делается это очень просто.
Во-первых, скрывается стандартное изображение курсора.
Во-вторых, выбирается нужный MovieClip объект, который будет просто двигаться за
курсором мышки.
*/
//
//СМОТРИМ
//
//Подгружаем необходимые классы (класс Tween)
import mx.transitions.Tween;
import mx.transitions.easing.*;
//Останавливаем проигрывание
stop();
//На рабочем столе у нас созданно 6 клипов-курсоров, которые мы будем передвигать, при
//наведении на них мышкой.
//Этот цикл, будет перебирать все клипы, заносить в переменные их начальные координаты
//и присваивать каждому клипу событие на onRollOver;
for (var i = 1; i&amp;lt;7; i++) {
        //”Запоминаем” начальные координаты
        _root[“mc”+i+“_mc”].varStartX = _root[“mc”+i+“_mc”]._x;
        _root[“mc”+i+“_mc”].varStartY = _root[“mc”+i+“_mc”]._y;
        //Задаём событие onRollOver
        _root[“mc”+i+“_mc”].onRollOver = function() {
                //Переменная _root.varCursor будет ссылаться на текущий MovieClip объект,
                //который двигался за мышкой. При наведении на новый клип, старый нужно убрать
                //на место, что мы и делаем следующим кодом.
                //Плавно изменяем координаты по оси X
                _root.varCursor.varTweenX.stop();
                _root.varCursor.varTweenX = new Tween(_root.varCursor, “_x”, Regular.easeOut, _root.varCursor._x, _root.varCursor.varStartX, 0.5, true);
                _root.varCursor.varTweenX.onMotionFinished = function() {
                        //После того, как Movie Clip встал на свою текущую позицию, мы “включаем” его.
                        this.obj.enabled = true;
                };
                //Плавно изменяем координаты по оси Y
                _root.varCursor.varTweenY.stop();
                _root.varCursor.varTweenY = new Tween(_root.varCursor, “_y”, Regular.easeOut, _root.varCursor._y, _root.varCursor.varStartY, 0.5, true);
                //Присваиваем переменной _root.varCursor текущий Movie Clip объект, на который
                //мы навели мышкой (курсором). Теперь, при движении мышки, текущий Movie Clip
                //объект будет двигаться за курсором.
                _root.varCursor = this;
                //”Оключаем” текущий Movie Clip, чтобы, пока он будет двигаться за мышкой не
                //срабатывало события onRollOver. Если объект не “отключить”, то это событие
                //будет срабатывать постоянно, т.к. координаты клипа будут совпадать с
                //координатами курсора.
                this.enabled = false;
        };
}
//Создаём событие, которое будет срабатывать каждый раз при движении мышки.
onMouseMove = function () {
        //Проверяем, если курсор мышки ниже серой черты (line_mc), то скрываем курсор.
        //Если курсор будет опускаться ниже line_mc, то делаем курсор видимым
        //
        //Функции hide() и show() объекта Mouse, как вы могли уже догадаться, скрывают или
        //показывают изображение курсора (стрелочку), соответственно.
        if (_root._ymouse&amp;lt;_root.line_mc._y) {
                Mouse.hide();
        } else {
                Mouse.show();
        }
        //Присваиваем значение координат мышки, координатам Movie Clip’a, на который будет
        //ссылаться переменная _root.varCursor. Таким образом будет создаваться впечатление,
        //что Movie Clip двигается за мышкой =)
        _root.varCursor._x = _root._xmouse;
        _root.varCursor._y = _root._ymouse;
};
//Вызываем событие onRollOver (на наведение курсора мышки) для объекта mc1_mc. Теперь
//этот Movie Clip будет передвигаться за курсором.
mc1_mc.onRollOver();
//Вызываем событие onMouseMove, чтобы присвоить mc1_mc координаты курсора.
onMouseMove();
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Кто не до конца разобрался, всегда может &lt;span style=&quot;font-weight:bold&quot;&gt;скачать флеш исходник (fla) к уроку&lt;/span&gt; и посмотреть &lt;span style=&quot;font-weight:bold&quot;&gt;флешку-пример (.swf)&lt;/span&gt;.&lt;br /&gt;
&lt;span style=&quot;font-weight:bold&quot;&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.flashist.ru/files/mouse/alter_cursor.swf&quot; class=&quot;bb-url&quot;&gt;Сама флешка&lt;/a&gt;&lt;/span&gt; | &lt;span style=&quot;font-weight:bold&quot;&gt;&lt;a href=&quot;http://www.flashist.ru/files/mouse/alter_cursor.rar&quot; class=&quot;bb-url&quot;&gt;Исходник&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
 <comments>http://www.flashist.ru/2008/01/15/zamenyaem-standartnye-kursory-vo-flash#comments</comments>
 <category domain="http://www.flashist.ru/taxonomy/term/8">FAQ</category>
 <category domain="http://www.flashist.ru/taxonomy/term/4">Flash</category>
 <category domain="http://www.flashist.ru/taxonomy/term/43">Mouse</category>
 <category domain="http://www.flashist.ru/taxonomy/term/15">Исходники</category>
 <category domain="http://www.flashist.ru/taxonomy/term/16">Уроки</category>
 <pubDate>Tue, 10 Feb 2009 00:35:57 +0300</pubDate>
 <dc:creator>admin</dc:creator>
 <guid isPermaLink="false">96 at http://www.flashist.ru</guid>
</item>
</channel>
</rss>

