Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-03-2006, 19:32   #1 (permalink)
VISIONcom
 
Registriert seit: Feb 2004
Ort: Luzern (CH)
Beiträge: 223
Rahmen mit abgerundeten Ecken

Hallo Zusammen

Ich versuch nun seite einiger Zeit. Einen Rahmen per AS zuzeichnen bei dem dem die Ecken mit einem Radius von 20 Abgerundet sind. Kriege es aber einfach nicht hin. Kann mir da jemand helfen?

Mein AS
PHP-Code:
            // Line
            
pMC.mc_rahmen.moveTo020 )
            
pMC.mc_rahmen.lineTo0hoehe-);
            
pMC.mc_rahmen.curveTo0hoeherhoehe );
            
pMC.mc_rahmen.lineTo(  breite-rhoehe );
            
pMC.mc_rahmen.curveTobreitehoehebreitehoehe-);
            
pMC.mc_rahmen.lineTobreite); 
Danke jetzt schon für die Unterstützung.

Gruss
Chris
visioncom ist offline   Mit Zitat antworten
Alt 12-03-2006, 20:41   #2 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
aloha!

ob das nun 20 radius sind, weiß ich net;
ich kann's nur so:
PHP-Code:
this.createEmptyMovieClip("MC_rahmen"4000);
_root.MC_rahmen._x _root.MC_rahmen._y=50;
with (_root.MC_rahmen) {
    
moveTo(200);
    
lineStyle(40xCCCC33100);
    
beginFill(0xCC3300);
    
lineTo(1800);
    
curveTo(200020020);
    
lineTo(200180);
    
curveTo(200200180200);
    
lineTo(20200);
    
curveTo(02000180);
    
lineTo(020);
    
curveTo(00200);
    
endFill();

__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 12-03-2006, 23:22   #3 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
dito als prototype:
http://www.seibsprogrammladen.de/fra...gm/Algorithmen
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 13-03-2006, 22:06   #4 (permalink)
VISIONcom
 
Registriert seit: Feb 2004
Ort: Luzern (CH)
Beiträge: 223
Danke für eure Hilfe. Habe versucht die Lösung von andretti anzupassen.
Und zwar mit den Variblen Radius, Breite und Höhe. Leider habe ich es nicht hinbekommen. Kann mir da jemand noch helfen?

Gruss
chris
visioncom ist offline   Mit Zitat antworten
Alt 14-03-2006, 06:42   #5 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
der prototype von hgseib ist doch eh genial:

PHP-Code:
MovieClip.prototype.rundesRechteck = function(xyhbrlinlinColorflaColor) {
    var 
h2 h/2b2 b/2yr h2-rxr b2-r;
    
lineStyle(linlinColor), beginFill(flaColor100);
    
moveTo(x-xry-h2);
    
lineTo(x+xry-h2), curveTo(x+b2y-h2x+b2y-yr);
    
lineTo(x+b2y+yr), curveTo(x+b2y+h2x+xry+h2);
    
lineTo(x-xry+h2), curveTo(x-b2y+h2x-b2y+yr);
    
lineTo(x-b2y-yr), curveTo(x-b2y-h2x-xry-h2);
    
endFill();
};
//
_root.rundesRechteck(3302502004005,20x00CC000x3333FF); 
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 14-03-2006, 11:40   #6 (permalink)
VISIONcom
 
Registriert seit: Feb 2004
Ort: Luzern (CH)
Beiträge: 223
Eigentlich ist die Funktion gut. Jedoch wird das Viereck um die Koordination herum gebaut. Das ist nicht das was ich möchte...
visioncom ist offline   Mit Zitat antworten
Alt 14-03-2006, 12:31   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
manchmal weiss ich nicht, ob ich lachen oder weinen soll ...

was willst du denn? das das rechteck von der linken oberen ecke gezeichnet wird?

b=400;
h=200;
r=20;
x=300+b/2; // bzw. ergänze diese hochkomplexe berechnung im prototype
y=300+h/2;
linColor=0;
flaColor=0xffffff;
_root.rundesRechteck(x, y, h, b, r, lin, linColor, flaColor);
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (14-03-2006 um 12:33 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 14-03-2006, 19:24   #8 (permalink)
VISIONcom
 
Registriert seit: Feb 2004
Ort: Luzern (CH)
Beiträge: 223
Mir geht es gleich...

Das habe ich mir doch auch gedacht. Hier mein code:
PHP-Code:
MovieClip.prototype.rundesRechteck = function(mcxyhbrlinlinColorflaColor) {
    var 
h2 h/2b2 b/2yr h2-rxr b2-r;
    
    
mc.createEmptyMovieClip"mc_rahmen");
    
    
    
withmc.mc_rahmen ){
        
_y y+h2+(lin/2);
        
_x x+b2+(lin/2);
        
        
lineStyle(linlinColor), beginFill(flaColor100);
        
moveTo(x-xry-h2);
        
lineTo(x+xry-h2), curveTo(x+b2y-h2x+b2y-yr);
        
lineTo(x+b2y+yr), curveTo(x+b2y+h2x+xry+h2);
        
lineTo(x-xry+h2), curveTo(x-b2y+h2x-b2y+yr);
        
lineTo(x-b2y-yr), curveTo(x-b2y-h2x-xry-h2);
        
endFill();
    }
};
//
_root.rundesRechteck(this502050505,20x00CC000x3333FF);  
//this.test( this, 10, 10, 180, 50, 20, 2, 0x00FF00, null ); 
Die Postionierung stimmt jedoch hinten und vorne nicht. Daher meine Frage. Die X-/Y- Koordinaten sollen auf dem MC_Rahmen eingehen und nicht auf die Linien. Das ist mein Problem. Aber ich kriege es einfach nicht gepacken...
visioncom ist offline   Mit Zitat antworten
Alt 14-03-2006, 21:03   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
"..Die X-/Y- Koordinaten sollen auf dem MC_Rahmen eingehen und nicht auf die Linien.."
mein schweizerisch ist doch nicht so gut, wie ich dachte ;-) ich verstehe nur fondue.
meinst du sowas:
Code:
MovieClip.prototype.rundesRechteck = function(x, y, h, b, r, lin, linColor, flaColor) {
	with (this) {
		var h2 = h/2, b2 = b/2, yr = h2-r, xr = b2-r;
		x += b2, y += h2;
		lineStyle(lin, linColor);
		if (flaColor!=null) beginFill(flaColor, 100);
		moveTo(x-xr, y-h2);
		lineTo(x+xr, y-h2), curveTo(x+b2, y-h2, x+b2, y-yr);
		lineTo(x+b2, y+yr), curveTo(x+b2, y+h2, x+xr, y+h2);
		lineTo(x-xr, y+h2), curveTo(x-b2, y+h2, x-b2, y+yr);
		lineTo(x-b2, y-yr), curveTo(x-b2, y-h2, x-xr, y-h2);
		if (flaColor!=null) endFill();
	}
};
// 
_root.createEmptyMovieClip("rahmen1_mc", 1);
_root.rahmen1_mc.rundesRechteck(0, 0, 200, 200, 30, 2, 0x00CC00, 0x3333FF);
_root.rahmen1_mc.onPress = startDrag;
_root.rahmen1_mc.onRelease = stopDrag;
//
_root.createEmptyMovieClip("rahmen2_mc", 2);
_root.rahmen2_mc.rundesRechteck(250, 120, 300, 50, 5, 2, 0x00CC00, 0xff3300);
_root.rahmen2_mc.onPress = startDrag;
_root.rahmen2_mc.onRelease = stopDrag;
das "with (this) {..}" fehlt allerdings auf meiner html-seite. werd ich gleich mal ergänzen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (14-03-2006 um 21:20 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 14-03-2006, 21:36   #10 (permalink)
VISIONcom
 
Registriert seit: Feb 2004
Ort: Luzern (CH)
Beiträge: 223
Mit Fondue legst du die Gabel schon in die korrekte Richtung.
Mein Prototyp soll auf einem Mitgegebenen MC einen Rahmen erstellen. daher mache ich im Prototyp einen neuen MC auf dem der Rahmen erstellt werden soll. Die Ausrichtung ist noch nicht ganz Korrekt in deinem Prototyp. Schau dir mal den Rahmen an. Warum baust due eigentlich den Rahmen um die Mitgegebenen Koordinaten herum?

gruss
Christian
visioncom ist offline   Mit Zitat antworten
Alt 14-03-2006, 23:46   #11 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
???
du meinst die linienbreite? die setzt flash mittig. ist auf der bühne genauso, wenn du ein rechteck aufziehst.
(wusste nicht, das du mit einem schweizer offiziersmesser nachmisst ;-)
ist allgemein üblich, weil man so objekte aneinander legen kann. nach deiner methode ergibt es doppelte linien. du siehst also: 'richtig' ist relativ.

wenn du das nicht willst, dann mach halt das rechteck entsprechend kleiner:
Code:
MovieClip.prototype.rundesRechteck = function(x, y, h, b, r, lin, linColor, flaColor) {
	with (this) {
		lineStyle(lin, linColor);
		lin /= 2, r -= lin;
		h=h/2-lin, b=b/2-lin, yr=h-r, xr=b-r;
		x += b+lin, y += h+lin;
		if (flaColor != null) {
			beginFill(flaColor, 100);
		}
		moveTo(x-xr, y-h);
		lineTo(x+xr, y-h), curveTo(x+b, y-h, x+b, y-yr);
		lineTo(x+b, y+yr), curveTo(x+b, y+h, x+xr, y+h);
		lineTo(x-xr, y+h), curveTo(x-b, y+h, x-b, y+yr);
		lineTo(x-b, y-yr), curveTo(x-b, y-h, x-xr, y-h);
		if (flaColor != null) {
			endFill();
		}
	}
};
// 
_root.createEmptyMovieClip("rahmen1_mc", 1);
_root.rahmen1_mc.rundesRechteck(0, 0, 200, 200, 60, 18, 0x00CC00, 0x3333FF);
_root.rahmen1_mc.onPress = startDrag;
_root.rahmen1_mc.onRelease = stopDrag;
p.s.
der radius ist auch nicht exakt rund - will's nur gesagt haben ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (14-03-2006 um 23:48 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 15-03-2006, 07:35   #12 (permalink)
VISIONcom
 
Registriert seit: Feb 2004
Ort: Luzern (CH)
Beiträge: 223
Okey. Ich versuche es einmal von einer anderen Seite. Der ganze Prototyp soll am schluss folgendes erstellen (siehe bild). Daher ist die Ausrichtung an den Null-Punkt wichtig. Und daher muss auch die Rahmenbereite einbezogen werden.
Oder will ich da etwas erstellen, was man vielleichter erstellen kann?

rahmen.jpg

Gruss
Christian
visioncom ist offline   Mit Zitat antworten
Alt 15-03-2006, 14:06   #13 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
jetzt nur nicht in panik geraten.
du hasst einmal das script in meinem letzten beitrag getestet ?
das unter dem text: wenn du das nicht willst, dann mach halt das rechteck entsprechend kleiner
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (15-03-2006 um 14:08 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 15-03-2006, 14:57   #14 (permalink)
VISIONcom
 
Registriert seit: Feb 2004
Ort: Luzern (CH)
Beiträge: 223
nei leider noch nicht. habe momentan kein flash im zugriff...
visioncom ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 05:55 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele