LocalConnection и ActionScript 3.0

LocalConnection (локальное соединение) в ActionScript обеспечивает взаимодействие между swf-файлами, запущенными на одном и том же ПК. В этом уроке мы рассмотрим самый простой способ использования LocalConnection в флеш-приложениях: мы будем передавать информацию о координатах объекта из одного swf-файла в другой.

Итак, приступим.

Для этого урока мы должны создать два отдельных swf-файла.

Первый файл будет называться localconnection_1.swf. Этот файл будет принимать через LocalConnection определённые данные и определённым образом на эти данные реагировать. Код для этого файла будет следующим...

Код ActionScript 3.0:

/* создаём объект LocalConnection */ var lc:LocalConnection = new LocalConnection(); /* указывает объект (this - создаваемое локальное подключение), для которого вызываются методы ответного вызова */ lc.client = this; /* готовим объект LocalConnection к получению команд от другого swf-файла в качестве параметра указываем имя соединения - "myconnection" */ lc.connect("myconnection"); /* функция, которую мы будем запускать из другого swf-файла через локальное соединение */ function go(newX:uint,newY:uint) { /* эта функция получает координаты мувика mc из другого swf-файла и присваивает их одноимённому мувику в этом swf-файле */ mc.x = newX; mc.y = newY; }

Второй файл будет называться localconnection_2.swf. Этот файл будет отправлять данные в ранее упоминавшийся файл localconnection_1.swf.

На сцене флеш-ролика localconnection_2.swf мы разместим MovieClip с картинкой внутри (он будет называться mc). Данный мувик пользователь может перетаскивать по сцене флеш-ролика. Каждый раз раз при изменении координат мувиклипа mc LocalConnection будет отправлять данные о новых координатах мувика в файл localconnection_1.swf. А в файле localconnection_1.swf будет аналогичный мувиклип (он тоже будет называться mc), координаты которого будут изменяться в соответствии с данными от LocalConnection. Надеюсь, понятно объяснил.

LocalConnection и ActionScript 3.0

Теперь код для localconnection_2.swf.

Код ActionScript 3.0:

/* создаём объект локального соединения */ var lc:LocalConnection = new LocalConnection(); /* разрешаем перетаскивание мувика mc при зажатой ЛКМ */ addEventListener(MouseEvent.MOUSE_DOWN, mDown); function mDown(event:MouseEvent):void { mc.startDrag(true, new Rectangle(0,0,550,400)); /* начинаем отслеживать событие перемещения курсора мышки по сцене флеш-ролика */ addEventListener(MouseEvent.MOUSE_MOVE, mMove); } addEventListener(MouseEvent.MOUSE_UP, mUp); /* если ЛКМ отжата, то перетаскивание мувика mc запрещено */ function mUp(event:MouseEvent):void { mc.stopDrag(); /* прекращаем следить за перемещением курсора мышки по сцене */ removeEventListener(MouseEvent.MOUSE_MOVE, mMove); } /* если ЛКМ зажата, то следим за перемещением курсора мышки если курсор изменяет своё положение, то, скорее всего, пользователь перетаскивает мувик mc по сцене */ function mMove(event:MouseEvent):void { /* через соединение с именем "myconnection" вызываем в другом swf-файле функцию "go" остальные параметры метода send() - это дополнительные параметры-данные, которые мы можем передать в другой swf-файл в данном случае мы передадим новые координаты мувика mc */ lc.send("myconnection", "go", mc.x, mc.y); }

Ну а теперь давайте посмотрим, как всё это работает на практике. Итак, у нас есть два swf-файла с одинаковыми объектами на сцене (картинка со значком Flash). Данный объект можно перетаскивать только во втором swf-файле. Но при изменении положения объекта во втором флеш-ролике аналогичные изменения должны происходить и с объектом в первом флеш-ролике. Проверяем это утверждение.

Первый swf-ролик (localconnection_1.swf):

Загрузить Adobe Flash Player

Второй swf-ролик (localconnection_2.swf):

Загрузить Adobe Flash Player

Лично у меня всё работает. А у вас?

Исходник к данному уроку под Adobe Flash CS5.5 скачать можно здесь.

Автор: admin

Дата добавления: 2011-12-07

Просмотров: 3667

Рейтинг поста: +7-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-07-16
> Скажите, как это сделать?

Что именно сделать?
Комментатор
Комментарий добавил(а): greencat
Дата добавления: 2014-07-16
Весьма содержательно.
Однако хотелось бы совместить LocalConnection c URLRequest и URLLoader. Скажите, как это сделать?
Комментатор
Комментарий добавил(а): Александр
Дата добавления: 2013-02-28
В закладки,
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика