{lang: 'de'}
Flashhilfe.de - Flash Community

Rotationslinien im Zeichenprogramm AS3 [Flash 9]

 


AntwortenRegistrieren Seite1  

synths#1
Benutzerbild von synths
Beiträge: 3
Registriert: Jun 2011

24.06.2011, 01:03

Guten Tag,

ich versuche momentan verzweifelt ein ansprechendes ''kleines'' Zeichenprogramm über Actionsscript3.0 zu schreiben und habe Probleme Rotation in gezeichnete Linien rein zu bekommen.
Und was ich schlecht finde, dass beim Zeichnen über den Rändern, der Pinsel aufhört und wenn man mit weiterhin gedrückter Maustaste wieder auf die Zeichenfläche geht nicht mehr weiter Zeichnet. =(

DIE DATEI IST UNTEN ZU FINDEN

Hier erstmal mein Text!

ActionScript:
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
var spBoard:Sprite=new Sprite();

this.addChild(spBoard);

spBoard.x=200;

spBoard.y=30;



var shDrawing:Shape=new Shape();

spBoard.addChild(shDrawing);



var doDraw:Boolean=false;

var lineSize:Number=7;

var currentColor:Number;



sizeBox.text=String(lineSize);



spBoard.graphics.lineStyle(1,0x000000);

spBoard.graphics.beginFill(0xFFFFFF);
   
spBoard.graphics.drawRect(0,0,400,250);
   
spBoard.graphics.endFill();
   
spBoard.filters = [ new DropShadowFilter() ];


         
spBoard.addEventListener(MouseEvent.ROLL_OUT,boardOut);
      
spBoard.addEventListener(MouseEvent.MOUSE_MOVE,boardMove);
      
spBoard.addEventListener(MouseEvent.MOUSE_DOWN,boardDown);
      
spBoard.addEventListener(MouseEvent.MOUSE_UP,boardUp);
      

function boardOut(e:MouseEvent):void {
           
           doDraw=false;
           
     }
   

function boardDown(e:MouseEvent):void {
           
           doDraw=true;
           
           
           
           currentColor=cpColor.selectedColor;
           
           shDrawing.graphics.lineStyle(lineSize,currentColor);
           
           
           
           shDrawing.graphics.moveTo(shDrawing.mouseX,shDrawing.mouseY);
        
     }
   
function boardUp(e:MouseEvent):void {
           
           doDraw=false;
           
     }
   
function boardMove(e:MouseEvent):void {
     
             var curX:Number=shDrawing.mouseX;
           
           var curY:Number=shDrawing.mouseY;
           
           
              
           if(doDraw && checkCoords(curX,curY)){
              
              shDrawing.graphics.lineTo(curX,curY);
              
              e.updateAfterEvent();
              
           }
           
     }
   
   
function checkCoords(a:Number,b:Number):Boolean {
     
     if(a>=400-lineSize/2 || a<=lineSize/2 || b>=250-lineSize/2 || b<=lineSize/2){
        
        return false;
     }
     
     else {
        
        return true;
     }
     
}


   
btnErase.addEventListener(MouseEvent.CLICK, eraseClicked);   


function eraseClicked(e:MouseEvent):void {
     
     shDrawing.graphics.clear();
     
}

btnUp.addEventListener(MouseEvent.CLICK, upClicked);   

function upClicked(e:MouseEvent):void {
     
     if(lineSize<20){
        
     lineSize+=1;
     
     } else {
        
        lineSize=20;
        
        }
     
     sizeBox.text=String(lineSize);
     
}

btnDown.addEventListener(MouseEvent.CLICK, downClicked);   

function downClicked(e:MouseEvent):void {
     
     if(lineSize>1){
        
     lineSize+=-1;
     
     } else {
        
        lineSize=1;
        
        }
     
     sizeBox.text=String(lineSize);
     
}

var i:int;
var myArray:Array = new Array()

spBoard.addEventListener(MouseEvent.MOUSE_MOVE,boardMove);
addEventListener(Event.ENTER_FRAME, update);

function paint(e:MouseEvent):void{
     if (e.buttonDown) {
        //myArray.push(new Brush());
      myArray[myArray.length-1].x=mouseX;
        myArray[myArray.length-1].y=mouseY;
        addChild(myArray[myArray.length-1]);
        //---Maske Ansprechen
      spBoard.addChild(myArray[myArray.length-1]);
     }
}

function update(e:Event):void{
     for (i = 0; i<myArray.length; i++) {
        myArray[i].rotation+=2;
     }
}





Ich habe das mit der Rotation schonmal rausgefunden. Die letzten paar Zeilen
hier nochmal

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var i:int;
var myArray:Array = new Array()

spBoard.addEventListener(MouseEvent.MOUSE_MOVE,boardMove);
addEventListener(Event.ENTER_FRAME, update);

function paint(e:MouseEvent):void{
     if (e.buttonDown) {
        //myArray.push(new Brush());
      myArray[myArray.length-1].x=mouseX;
        myArray[myArray.length-1].y=mouseY;
        addChild(myArray[myArray.length-1]);
        //---Maske Ansprechen
      spBoard.addChild(myArray[myArray.length-1]);
     }
}

function update(e:Event):void{
     for (i = 0; i<myArray.length; i++) {
        myArray[i].rotation+=2;
     }
}


habe versucht den Text hier auch so anzupassen aber es funktioniert nicht.


Ich hoffe ihr könnt mir helfen!!!

LG

[attachment_7210]
synths#2
Benutzerbild von synths
Beiträge: 3
Registriert: Jun 2011

Themenautor/in

24.06.2011, 11:34

hmmm ... kann mir keiner helfen??? =(
synths#3
Benutzerbild von synths
Beiträge: 3
Registriert: Jun 2011

Themenautor/in

24.06.2011, 11:53

Hier eine Version wo die Rotationslinien Funktionieren, vielleicht hat dann wer eine Idee =)

Hoffe jetzt könnt ihr euch besser vorstellen wie ich das mit der Rotation meine ;)

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de