Форум программистов, компьютерный форум, киберфорум
JavaScript: HTML5 Canvas
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 1
Регистрация: 30.01.2017
Сообщений: 22

Правка Drag and Drop кода под Adobe Animate CC

04.02.2017, 20:46. Показов 2573. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть пример кода прекрасно работающего самого по себе.
Пытаюсь засунуть его в проект Adobe Animate CC HTML5 Canvas.
При запуске наблюдаю белый экран.
Пытался добиться ответа на офф форуме - это бесполезно, кидают ссылки на нерабочие примеры - сразу видно сами в программе не тестили.
Не знаю почему разработчики убрали возможность подключения внешних библиотек, но теперь я даже не представляю как его нужно менять под их программу чтобы он работал , при том , что сам по себе он работает.
Вот сам код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
var stage, containerDrag, dragOffset;
    
    function init(){
        //setup stage
        stage = new createjs.Stage('canvas');
        createjs.Ticker.addEventListener("tick", tick);
        createjs.Ticker.setFPS(60); 
        
        //drag container
        containerDrag = new createjs.Container();
        stage.addChild(containerDrag);
        
        //stage listeners 
        stage.addEventListener("stagemousedown", startDrag);   
        stage.addEventListener("stagemouseup", stopDrag); 
        dragOffset = new createjs.Point();
 
        
        //add random shape to container
        for(var i = 0; i < 100; i++){
            var rect = new createjs.Shape();
            rect.graphics.beginFill('#ffffff').drawRect(0,0,getRandom(1, 3), getRandom(1, 3));
            rect.x = getRandom(0, 1000);
            rect.y = getRandom(0, 1000);
            containerDrag.addChild(rect);
        }
      
    }    
    
    //draggable listeners
    function startDrag(){
        dragOffset.x = stage.mouseX - containerDrag.x;
        dragOffset.y = stage.mouseY - containerDrag.y;
        stage.addEventListener("stagemousemove", moveDrag);   
    }   
        
    function stopDrag(){
         stage.removeEventListener("stagemousemove", moveDrag);   
    } 
        
    function moveDrag(e){
      containerDrag.x = e.stageX - dragOffset.x;
      containerDrag.y = e.stageY - dragOffset.y;
    }    
    
    //Random utility function    
    function getRandom(min, max){
        return min + (Math.random() * (max-min));
    }  
        
    function tick(e){
        stage.update();
    }
Помимо этого я пробовал множество примеров Drag and Drop кода, большинство из которых так-же выдают белый экран.
Так-же пытался конвертировать стандартный пример из AS3 - но безуспешно.
Может кто работает в Adobe Animate CC?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2017, 20:46
Ответы с готовыми решениями:

Подгонка картинки под размер ячейки при "drag and drop"
Добрый вечер, уважаемые профессионалы! Облазил кучу ресурсов, но безуспешно. Я работаю с excel 2010, подготавливаю каталоги,...

Панорама в Adobe Animate
Добрый вечер! Нужно написать код, который будет брать координаты мыши по оси X, и, в зависимости от их удаленности от центра, перемещать в...

FlashDevelop и Adobe Animate
Зравствуйте, как же связать FlashDevelop и Adobe Animate ? хочю что бы я мог обратится с мовиклипу с FlashDevelop и откомпилировать с...

1
0 / 0 / 1
Регистрация: 30.01.2017
Сообщений: 22
07.02.2017, 12:30  [ТС]
В общем пришлось использовать другой пример кода, там после удаления сцены - все работает и остается лишь заменить символы на свои. Жаль что не нашел как заставить тот пример работать , но задача решена, тему можно закрывать.
Если кому понадобится - вот рабочий пример:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
//VARIABLES
//Drag Object Size
dragRadius = 40;
//Destination Size
destHeight = 100;
destWidth = 100;
 
//Circle Creation
var label = new createjs.Text("DRAG ME", "14px Lato", "#fff");
label.textAlign="center";
label.y -= 7;
var circle = new createjs.Shape();
circle.graphics.setStrokeStyle(2).beginStroke("black")
.beginFill("red").drawCircle(0,0, dragRadius);
 
 
//Drag Object Creation
//Placed inside a container to hold both label and shape
var dragger = new createjs.Container();
dragger.x = dragger.y = 100;
dragger.addChild(circle, label);
dragger.setBounds(100, 100, dragRadius*2, dragRadius*2);
//DragRadius * 2 because 2*r = width of the bounding box
var label2 = new createjs.Text("HERE", "bold 14px Lato", "#000");
label2.textAlign = "center";
label2.x += 50;
label2.y += 40;
 
 
var box = new createjs.Shape();
box.graphics.setStrokeStyle(2).beginStroke("black").rect(0, 0, destHeight, destWidth);
var destination = new createjs.Container();
destination.x = 350;
destination.y = 50;
destination.setBounds(350, 50, destHeight, destWidth);
 
destination.addChild(label2, box);
 
//DRAG FUNCTIONALITY =====================
dragger.on("pressmove", function(evt){
     evt.currentTarget.x = evt.stageX;
    evt.currentTarget.y = evt.stageY;
     stage.update(); //much smoother because it refreshes the screen every pixel movement instead of the FPS set on the Ticker
     if(intersect(evt.currentTarget, destination)){
       evt.currentTarget.alpha=0.2;
       box.graphics.clear();
       box.graphics.setStrokeStyle(3)
       .beginStroke("#0066A4")
       .rect(0, 0, destHeight, destWidth);
       
     }else{
       evt.currentTarget.alpha=1;
       box.graphics.clear();     box.graphics.setStrokeStyle(2).beginStroke("black").rect(0, 0, destHeight, destWidth);
     }
 
});
 
//Mouse UP and SNAP====================
dragger.on("pressup", function(evt) {
  if(intersect(evt.currentTarget, destination)){
    dragger.x = destination.x + destWidth/2;
    dragger.y = destination.y + destHeight/2;
    dragger.alpha = 1;
    box.graphics.clear();     
    box.graphics.setStrokeStyle(2).beginStroke("black").rect(0, 0, destHeight, destWidth);
    stage.update(evt);
  }
});
//Tests if two objects are intersecting
//Sees if obj1 passes through the first and last line of its
//bounding box in the x and y sectors
//Utilizes globalToLocal to get the x and y of obj1 in relation
//to obj2
//PRE: Must have bounds set for each object
//Post: Returns true or false
function intersect(obj1, obj2){
  var objBounds1 = obj1.getBounds().clone();
  var objBounds2 = obj2.getBounds().clone();
 
  var pt = obj1.globalToLocal(objBounds2.x, objBounds2.y);
  
  var h1 = -(objBounds1.height / 2 + objBounds2.height);
  var h2 = objBounds2.width / 2;
  var w1 = -(objBounds1.width / 2 + objBounds2.width);
  var w2 = objBounds2.width / 2;
 
  
  if(pt.x > w2 || pt.x < w1) return false;
  if(pt.y > h2 || pt.y < h1) return false;
  
  return true;
}
 
 
//Adds the object into stage
stage.addChild(destination, dragger);
stage.mouseMoveOutside = true;
stage.update();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2017, 12:30
Помогаю со студенческими работами здесь

Adobe Animate CC: не рабоиает пипетка.
Работала в Adobe Flash CS6 очень долгое время и не знала проблем. С покупкой нового ноутбука пришлось перейти на Adobe Animate CC, так как...

Ограничить область перетаскиваемого объекта (drag) в Animate CC
Всем привет. Нужна помощь в следующем вопросе. Есть кнопка sbtn для скролинга другого объекта legal Код позволяет захватить sbtn и...

Adobe animate СС не могу переименовать монтажный кадр
Народ ситуация такая создал проект html5\canvas сделал анимацию и столкнулся с тех проблемой у меня рабочая область в которой я...

Без лицензии Adobe Animate CC 2017 опубликовать приложение в PlayMarket.
не имея лицензии на Adobe Animate CC 2017 можно опубликовать приложение на PlayMarket ?

Drag and Drop
Drag and Drop Подскажите пожалуйста как сохранить перетаскиваемый элемент в какой-либо из блоков Например, есть следующий код ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru