Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Передача данных (http://www.flasher.ru/forum/showthread.php?t=215361)

Comer 27.03.2018 16:10

Передача данных
 
Помогите, пожалуйста, исправить код!
Есть два swf-файла. Действия из второго swf передаются в первый swf. То есть, я открываю оба файла, и начинаю перетаскивать квадрат во втором swf, а два других в первом swf перемещается синхронно с тем, который я перетаскиваю. Но есть проблема. Как только я начинаю перетаскивание, то два квадрата из первого swf принимают начальные координаты того, который я таскаю во втором swf. Как сделать так, чтобы квадраты в первом swf НЕ принимали начальные координаты перетаскиваемого квадрата?

Код второго swf-файла:
Код AS3:

var lc:LocalConnection = new LocalConnection();
 
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);
 
function mUp(event:MouseEvent):void
{
    mc.stopDrag();
    removeEventListener(MouseEvent.MOUSE_MOVE, mMove);
}
 
function mMove(event:MouseEvent):void
{
    lc.send("myconnection", "go", mc.x, mc.y);
}

Код первого swf-файла:
Код AS3:

var lc:LocalConnection = new LocalConnection();
 
lc.client = this;
 
lc.connect("myconnection");
 
function go(newX:uint,newY:uint)
{
 
    mc1.x = newX;
    mc1.y = newY;
    mc2.x = newX;
    mc2.y = newY;
}


Wolsh 27.03.2018 17:32

Код AS3:

var lc:LocalConnection = new LocalConnection();
var lastX:Number;
var lasY:Number;
 
addEventListener(MouseEvent.MOUSE_DOWN, mDown);
function mDown(event:MouseEvent):void
{
        lastX = mc.x;
        lastY = mc.y;
        mc.startDrag(true, new Rectangle(0,0,550,400));
        addEventListener(MouseEvent.MOUSE_MOVE, mMove);
}
addEventListener(MouseEvent.MOUSE_UP, mUp);
 
function mUp(event:MouseEvent):void
{
        mc.stopDrag();
        removeEventListener(MouseEvent.MOUSE_MOVE, mMove);
}
 
function mMove(event:MouseEvent):void
{
        lc.send("myconnection", "go",  mc.x - lastX,  mc.y - lastY);
        lastX = mc.x;
        lastY = mc.y;
}

Код AS3:

    mc1.x += newX;
    mc1.y += newY;
    mc2.x += newX;
    mc2.y += newY;

как-то так.. если направления не попутал

Comer 27.03.2018 17:52

Цитата:

Сообщение от Wolsh (Сообщение 1204738)
как-то так.. если направления не попутал

Ошибку исправил, но всё равно не работает. Оба квадрата уходят в левый верхний угол ролика, а когда начинаю перетаскивать , то вообще уходят со сцены.

ZergMaster 27.03.2018 19:06

рекомендую воспользоваться trace() для прояснения обстановки

Comer 27.03.2018 20:05

Я не знаю как им пользоваться. Я ещё только учусь.

ZergMaster 27.03.2018 22:10

а через что вы компилите?

Comer 27.03.2018 22:43

Цитата:

Сообщение от ZergMaster (Сообщение 1204744)
а через что вы компилите?

Adobe Animate CC

ZackMercury 27.03.2018 22:47

Цитата:

рекомендую воспользоваться trace() для прояснения обстановки
Цитата:

Я не знаю как им пользоваться. Я ещё только учусь.
http://uroki-flash-as3.ru/uroki-acti...ionscript.html

Wolsh 28.03.2018 00:02

Цитата:

уходят в левый верхний угол
Вы точно исправили mc1.x = newX; на mc1.x += newX ?
И да, в приемнике функции go() надо заменить тип параметров на Number или хотя бы int.
Ведь uint не бывает отрицательным и преобразуется в огромное положительное число ("уходят с экрана").

Comer 28.03.2018 06:55

Цитата:

Сообщение от Wolsh (Сообщение 1204748)
Вы точно исправили mc1.x = newX; на mc1.x += newX ?
И да, в приемнике функции go() надо заменить тип параметров на Number или хотя бы int.
Ведь uint не бывает отрицательным и преобразуется в огромное положительное число ("уходят с экрана").

Теперь работает. Спасибо большое!!!


Часовой пояс GMT +4, время: 23:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.