Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 01.11.2012
Сообщений: 29
1
AS 3.0

Создать неограниченное количество копий при перемещении круга

23.04.2015, 15:31. Показов 689. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть круг с именем "player". Как создать неограниченное количество копий при его перемещении? Т.е. перетаскиваю уже копию объекта, а круг остается на месте. Желательно чтоб копии имели то же самое имя т.е "player" (Если это возможно).
Как перемещать объект я знаю.

ActionScript 3
1
2
3
4
5
6
7
8
9
10
player.addEventListener(MouseEvent.MOUSE_DOWN, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
    player.startDrag(true);
}
player.addEventListener(MouseEvent.MOUSE_UP, f2_MouseClickHandler);
function f2_MouseClickHandler(event:MouseEvent):void
{
    player.stopDrag();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2015, 15:31
Ответы с готовыми решениями:

Неограниченное количество значений
Задали вот такую задачку , до сих пор не могу решить. Помогите. 1) Программа должна позволять...

Неограниченное количество плей листов
Господа программисты! Подскажите пожалуйста, как с помощью TabControl можно динамически создавать...

Вводить неограниченное количество чисел
Составьте программу, которая позволяет вводить неограниченное количество чисел. После каждого ввода...

Как добавить неограниченное количество виджетов?
Опишу всё по сути: Существует область - GridLayout. Существует кнопка - добавить По нажатию...

13
753 / 485 / 212
Регистрация: 05.04.2015
Сообщений: 2,013
23.04.2015, 19:00 2
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function duplicateDisplayObject(target:DisplayObject):* {
var targetClass:Class = target["constructor"];
var duplicate:* = new targetClass();
duplicate.x = target.x;
duplicate.y = target.y;
addChild(duplicate);
return duplicate;
}
var newInstance:MovieClip = duplicateDisplayObject(player);
newInstance.addEventListener(MouseEvent.MOUSE_DOWN, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
    newInstance.startDrag(true);
}
newInstance.addEventListener(MouseEvent.MOUSE_UP, f2_MouseClickHandler);
function f2_MouseClickHandler(event:MouseEvent):void
{
    newInstance.stopDrag();
}
0
1 / 1 / 0
Регистрация: 01.11.2012
Сообщений: 29
23.04.2015, 23:17  [ТС] 3
Ничего не происходит, круг даже не перемещается. Ошибок компиляция не выдаёт. Может я не так что-то делаю?
0
753 / 485 / 212
Регистрация: 05.04.2015
Сообщений: 2,013
24.04.2015, 16:44 4
у тебя лежит на сцене объект с instanceName "player"?
1
1 / 1 / 0
Регистрация: 01.11.2012
Сообщений: 29
24.04.2015, 22:28  [ТС] 5
Рисую круг, преобразовываю его в мувиклип и назначаю имя экземпляру player через свойства.
0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
24.04.2015, 23:01 6
zhunshun, а зачем все эти извращения, если можно создавать экземпляры нужного класса?
0
753 / 485 / 212
Регистрация: 05.04.2015
Сообщений: 2,013
25.04.2015, 06:33 7
Но у меня копия создается, копия образуется сверху первого , я её таскаю по сцене
0
1 / 1 / 0
Регистрация: 01.11.2012
Сообщений: 29
25.04.2015, 12:39  [ТС] 8
У меня тоже получилось, но копия создается только одна. А как сделать чтоб можно было создавать неограниченное количество?
0
753 / 485 / 212
Регистрация: 05.04.2015
Сообщений: 2,013
26.04.2015, 06:37 9
Вот так попробуй
ActionScript 3
1
2
3
4
5
6
addEventListener(Event.ENTER_FRAME, entFrame);
function entFrame(e:Event):void{
newInstance = duplicateDisplayObject(player);
newInstance.x = stage.mouseX;
newInstance.y = stage.mouseY;
}
0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
26.04.2015, 12:48 10
zhunshun, т.е. в каждом кадре не зависимо от движения создавать?
0
753 / 485 / 212
Регистрация: 05.04.2015
Сообщений: 2,013
26.04.2015, 13:16 11
можно создавать реже, каждый 2 кадр
0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
26.04.2015, 14:35 12
zhunshun, почему бы не создавать только тогда, когда это необходимо и только в необходимом количестве?
0
1 / 1 / 0
Регистрация: 01.11.2012
Сообщений: 29
26.04.2015, 16:04  [ТС] 13
Как тогда сделать например чтоб 10 копий можно было создать? Чтоб от одного места все 10 создавались.

Добавлено через 11 минут
Просто если создать 10 переменных
ActionScript 3
1
2
var newInstance:MovieClip = duplicateDisplayObject(player);
var newInstance2:MovieClip = duplicateDisplayObject(player);
тогда код будет занимать много места.
0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
26.04.2015, 17:49 14
Nck, почему вам не создавать новые экземпляры классов, а не "копии"?
Т.е. вместо использования метода duplicateDisplayObject просто использовать конструкцию типа
ActionScript 3
1
var item:Item = new Item();
0
26.04.2015, 17:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2015, 17:49
Помогаю со студенческими работами здесь

Ввод чисел неограниченное количество раз
здравствуйте! нужно составить прогу: нужно сделать, чтобы можно было вводить числа неограниченное...

Выполнять действие неограниченное количество раз
Всем привет. Можете подсказать, как сделать возможность нажимать на кнопку и выполнять действие...

Возможно ли продать проект неограниченное количество раз?
Возможно ли создать такой проект, который продаешь скорее не сам проект, а право распоряжаться...

Как передать в функцию неограниченное количество параметров?
Для наглядности Всем нам известно что функция Console.Write() фактически безразмерна. Я могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru