Rotationslinien im Zeichenprogramm AS3 [Flash 9]
| 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] | | | Beiträge: 3 Registriert: Jun 2011
Themenautor/in
| 24.06.2011, 11:34
hmmm ... kann mir keiner helfen??? =( | | | 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 ;) | |
| Ähnliche Beiträge zum Thema | |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News
Regeln & Bedingungen
|