Zurück   Flashforum > Flash > Flash erweitern > Flash Entwicklungsumgebung erweitern

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-05-2004, 15:02   #1 (permalink)
Entwickler
 
Registriert seit: Apr 2002
Ort: Edinburgh, UK
Beiträge: 301
Shape füllen

Moin,

ich möchte ein Shape zeichnen und es mit einer Farbe füllen. Zeichnen funktioniert, Strichfarbe festlegen auch, nur füllen klappt nicht mit folgendem Script:

ActionScript:
  1. command = "fl.getDocumentDOM().addNewLine({x:100, y:100}, {x:400, y:100});";
  2.     command += "fl.getDocumentDOM().addNewLine({x:400, y:100}, {x:400, y:400});";
  3.     command += "fl.getDocumentDOM().addNewLine({x:400, y:400}, {x:100, y:400});";
  4.     command += "fl.getDocumentDOM().addNewLine({x:100, y:400}, {x:100, y:100});";
  5.     command += "fl.getDocumentDOM().setStrokeColor('#ff0000');";
  6.     command += "fl.getDocumentDOM().setFillColor('#ff0000');";
  7.     MMExecute(command);

Weiss jemand wieso nicht? Wie macht man so etwas? btw. addNewRectangle() kann ich nicht benutzten weil mein Shape alles mögliche sein kann. Nicht nur ein Rechteck.

Gruß,
Alex
Alex U. ist offline   Mit Zitat antworten
Alt 28-05-2004, 20:22   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
ich weiss nicht genau was du da vorhast und was das bringen soll?
das MMExecute wird nur ausgeführt, wenn du z.b. den film testest. aber dann kann die API nichts am film ändern. und wenn sie es könnte, dann wäre das am fertigen film nicht dabei?

lade dir z.b. mal
seibsGitterRect.mxp
und öffne das .jsfl mit flash. da hast du ein beispiel, wie man z.b. was mit der API zeichnen kann.

oder, falls dir das zu komplex ist:

protokoll-fenster öffnen
etwas machen (was er aufzeichnet - z.b. einzelne linien ziehen usw.)
alle befehle -im protokoll-fenster- auswählen und hier rechts oben das popup als "als befehl speichern".

das taucht jetzt im menü "befehle" auf. und du kannst das file ansehen und verändern in:
../Flash../de/Configuration/Commands/da ist es.jsfl

(nicht mit doppelklick öffnen, dann wird es ausgeführt. sondern mit dem öffnen-befehl von flash)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 05-06-2004, 12:53   #3 (permalink)
Entwickler
 
Registriert seit: Apr 2002
Ort: Edinburgh, UK
Beiträge: 301
Danke für deine Antwort. Ich versuche einen zusätzlichen Panel zu entwickeln um bestimmte Formen zu zeichnen. Mein Problem konnte ich lösen. Lösung: Man kann mit der Funktion setFillColor() nur vorhandene Shapes ändern und nicht füllen. Dafür benötigt man folgende Methoden. Hier ein Ausschnitt der jsfl:

Code:
	var doc = fl.getDocumentDOM();
	var command;		
	var path = fl.drawingLayer.newPath();
	var i;	
	for(i = 0; i <= s; i++) {					
	     //Formel zu Berechnung der Punkte x und y
	     path.addPoint(x,y);
	}	
	path.close();
	path.makeShape();
	doc.selection = [doc.timelines[0].layers[0].frames[0].elements[0]];
	doc.setStrokeColor(outlineColor);	
	doc.setFillColor(fillColor)


doc.selection markiert glaube ich alles auf dem Frame. Kennst du eine Möglichkeit nur das zu markieren was gerade mit path.addPoint und path.makeShape gezeichnet wurde?

MMExecute habe ich zuerst benutzt da ich die Berechnungen der Formel in der Window .swf gemacht habe. In der Hoffnung das die Berechnungen schneller laufen habe ich das ganze jetzt in eine seperate .jsfl Datei ausgegliedert, habe aber leider kaum Geschwindigkeitsvorteile erkannt. Gibt es irgendwo Resourcen wie man .jsfl Dateien optimieren kann? Bisher verwende ich die gleichen Tricks wie für ActionScript für die Performancesteigerung.

btw. weisst du wie ich festlegen kann, dass meine Erweiterung im Extension Manager unter Typ als Command erkannt wird und nicht als "Sonstige"? Folgendes funktioniert nämlich nicht: (Ausschnitt aus der .mxi)
Code:
<macromedia-extension
	name="meineExtension"
	version="0.3"
	type="Flash commands" >
wird als "Sonstige" und nicht als "Befehl" im Extenstion Manager erkannt?

Gruß,
Alex

Geändert von Alex U. (05-06-2004 um 13:01 Uhr)
Alex U. 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 aus.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 01:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele