Hallo allemaal.
Ik wil een object inladen in en vervolgens draaien om een bepaald punt. Dit doe ik met de class DynamicMovie. Deze class maakt dit perfect mogelijk.
Om dit te testen heb ik een test class geprogrammeerd.
Dit werkt zoals verwacht. Maar ik wil in de uiteindelijke applicatie net iets anders. Ik wil het object roteren om het midden van een ander display object. Niet vanaf de muispositie op de image.
Om dit te verduidelijken een afbeelding:

Het midden van de tool (een crop tool) moet het centrum zijn waar de afbeelding rondom draait. Alleen ik weet niet hoe ik het midden van de crop tool (holder) kan overbrengen in de image?
Hmm. lastig uit te leggen.
Hier in ieder geval een stuk code uit de applicatie:
De variabelen LTX, LTY, RTX, RTY, LBX, LBY, RBX, RBY zijn de posites van de hoeken van de holder voor de duidelijkheid.
Is er iemand die een techniek weet om dit voor elkaar te krijgen. Ik loop hier behoorlijk vast.
Alvast bedankt voor jullie reacties
.
Ik wil een object inladen in en vervolgens draaien om een bepaald punt. Dit doe ik met de class DynamicMovie. Deze class maakt dit perfect mogelijk.
Om dit te testen heb ik een test class geprogrammeerd.
code:
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
| // ActionScript file package classes { import flash.display.MovieClip; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; public class rotatietest extends MovieClip { private var rotate:DynamicMovie; private var graphic:Sprite; private var container:DynamicMovie; private var center:Array = new Array(1); private var centerLoc:Point = new Point; public function rotatietest() { btnRotate.addEventListener(MouseEvent.MOUSE_DOWN, rotateObject); stage.addEventListener(MouseEvent.MOUSE_DOWN, changeCenter); graphic = new Sprite; graphic.graphics.beginFill(0x00FF00, 1); graphic.graphics.drawRect(100, 100, 100, 100); graphic.graphics.endFill(); center[0] = 150; center[1] = 150; rotate = new DynamicMovie; rotate.setRegistration(center[0], center[1]); rotate.addChild(graphic); addChild(rotate); } public function changeCenter(event:MouseEvent) { centerLoc.x = rotate.mouseX; centerLoc.y = rotate.mouseY; trace(centerLoc.x); trace(centerLoc.y); rotate.localToGlobal(centerLoc); trace(centerLoc.x); trace(centerLoc.y); var centerPoint:Sprite = new Sprite; centerPoint.graphics.beginFill(0x00FFF0, 1); centerPoint.graphics.drawCircle(centerLoc.x, centerLoc.y, 5); centerPoint.graphics.endFill(); rotate.setRegistration(centerLoc.x, centerLoc.y); rotate.addChild(centerPoint); } public function rotateObject(event:MouseEvent) { stage.removeEventListener(MouseEvent.MOUSE_DOWN, changeCenter); stage.addEventListener(MouseEvent.MOUSE_UP, addChangeCenter); rotate.rotation2 += 10; } public function addChangeCenter(event:MouseEvent) { stage.addEventListener(MouseEvent.MOUSE_DOWN, changeCenter); } } } |
Dit werkt zoals verwacht. Maar ik wil in de uiteindelijke applicatie net iets anders. Ik wil het object roteren om het midden van een ander display object. Niet vanaf de muispositie op de image.
Om dit te verduidelijken een afbeelding:

Het midden van de tool (een crop tool) moet het centrum zijn waar de afbeelding rondom draait. Alleen ik weet niet hoe ik het midden van de crop tool (holder) kan overbrengen in de image?
Hmm. lastig uit te leggen.
Hier in ieder geval een stuk code uit de applicatie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| var centX = (LTX + ((RTX - LTX) / 2)); var centY = (LTY + ((LBY - RTY) / 2)); center.width = 10; center.height = 10; center.x = centX; center.y = centY; centerPosition.x = centX; centerPosition.y = centY; localToGlobal(centerPosition); image.setRegistration(centerPosition.x, centerPosition.y); |
De variabelen LTX, LTY, RTX, RTY, LBX, LBY, RBX, RBY zijn de posites van de hoeken van de holder voor de duidelijkheid.
Is er iemand die een techniek weet om dit voor elkaar te krijgen. Ik loop hier behoorlijk vast.
Alvast bedankt voor jullie reacties
www.diovisuals.co,