Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-05-2004, 15:17   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 9
Question Flash diagramm zeichnen

Hallo Leute,

ich habe da ein kleines Problem. Ich möchte gerne ein Diagramm in Flash zeichnen.

Ich zeige euch mein Skript:

meinLoadVars = new LoadVars();
werte = new Array();
datenHolen("daten.txt");
function datenHolen(dateiname) {
trace("daten geholt");
meinLoadVars.load(dateiname); // load lädt Variablen von der angegebene URL herunter
//trace("das ist "+dateiname);
}

meinLoadVars.onLoad = function(status) { // onLoad wird verwendet wenn ein load Vorgang abgeschlossen ist
//trace("onLoad");
if (status) {
//trace("onLoad ok");
//gelesene Daten verarbeiten
//trace(meinLoadVars.toString());
werte = meinLoadVars.daten.split(";"); // werte ist das Array
trace("werte "+werte);
//trace(meinLoadVars.daten);
balken();
} else {
trace("onLoad nicht ok");
}

};
balken = function () {
breite=10;
abstand=10;
x=100;
y=100;
for (i=0; i<werte.length; i++) {
hoehe=werte[i];
//trace("hohe"+werte[i]);
lineStyle(3,0x000000);
moveTo(x,y);
beginFill(0xcdff00);
LineTo(x,(y-werte[i]));
LineTo(x-hoehe,(y-werte[i]));
LineTo(x-hoehe,y);
LineTo(x,y);


trace("y: "+y);
//LineTo(x,(y+hoehe));
//LineTo(x+breite,(y*werte[i])+abstand);

endFill();

//trace("hallo");

}
};

Hier sind die werte aus der daten.txt:

&daten=120;50;40;70;35;50

Eigentlich sollen ungefähr sechs balken erscheinen die sich nach den werten aus der txt richten. Leider ist dies nicht der Fall. Ich weiß wo mein Fehler liegt komme aber einfach nicht auf die richtige Lösung. Hoffe mit kann jemand helfen

Bis dann dann
flashtrigger ist offline   Mit Zitat antworten
Alt 22-05-2004, 15:48   #2 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 9
Flash diagramm zeichnen

Hey leute,

habe es gerade hinbekommen. Habe die Werte vertauscht und kam deswegen zu keinem Ergebnis. Trotzdem danke für eure Hilfe.
flashtrigger ist offline   Mit Zitat antworten
Alt 22-05-2004, 15:51   #3 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
habs mal ein bischen umgeschrieben, so müsste es gehen:
ActionScript:
  1. meinLoadVars = new LoadVars();
  2. dateiname = "daten.txt";
  3. meinLoadVars.load(dateiname);
  4. meinLoadVars.onLoad = function(success) {
  5.     if (success) {
  6.         werte = meinLoadVars.daten.split(";");
  7.         balken(werte);
  8.     } else {
  9.         trace("Fehler beim Laden");
  10.     }
  11. };
  12. function balken(daten) {
  13.     breite = abstand=10;
  14.     x = y=100;
  15.     for (var i = 0; i<daten.length; i++) {
  16.         var m = this.createEmptyMovieClip("holder", i);
  17.         m._x = abstand*i*2;
  18.         hoehe = daten[i];
  19.         m.lineStyle(0);
  20.         m.beginFill(0xcdff00);
  21.         m.lineTo(breite/2, 0);
  22.         m.lineTo(breite/2, -hoehe);
  23.         m.lineTo(-breite/2, -hoehe);
  24.         m.lineTo(-breite/2, 0);
  25.         m.lineTo(0, 0);
  26.         endFill();
  27.     }
  28. }

thorben.schmitt ist offline   Mit Zitat antworten
Alt 13-12-2006, 13:15   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Beiträge: 166
von punkt zu punkt eine linie zeichen

Hallo ich habe folgendes Problem.

Ich möchte auch ein Diagramm zeichnen, aber ich möchte per as von Punkt zu Punkt eine Linie zeichnen. Ich bae also ein gefülltes Array mit lauter Objekten (MovieClips)... diese (dot) positionier ich in einer Schleife und mit duplicateMoviClip auf der Bühne.

Hier mein nicht funtionierendes Beispiel:
Code:
var gMainGridHeight:Number = 207;
var gXpositions:Array = new Array(2,4,6,8);
var incomingValues:Array = new Array(10, 20, 30, 16);

setupDots(incomingValues);

function setupDots(incomingValues:Array) {
	for (count=0; count<incomingValues.length; count++) {
	//trace(incomingValues[count]);
		var dot:MovieClip = dot.duplicateMovieClip("dot"+count,_root.getNextHighestDepth());
		dot._x = gXpositions[count];
		dot._y = gMainGridHeight-incomingValues[count];
				
		// draw a line between 
		var targetline:MovieClip = this.createEmptyMovieClip("targetline"+count, count*3000);
		targetline._x = gXpositions[count];
		targetline._y = gMainGridHeight-incomingValues[count];
		
//die xPositionen der targetline stimmen schon
//jetzt möchte ich das von jedem punkt zum nächsten eine Linie gezeichnet wird und komm nicht dahinter.. wie es geht.
				
		targetline.lineStyle(1, 0x000000, 100, true, "none", "round", "round");
		targetline.lineTo(gXpositions[count], ?????);
		
	}
}
Kann mir jemand helfen bitte. Vielen Dank im Vorraus.

LG
mikolo ist offline   Mit Zitat antworten
Alt 13-12-2006, 14:30   #5 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
ich habe nicht recht verstanden was du mit hiermit bezweckst
PHP-Code:
var dot:MovieClip dot.duplicateMovieClip("dot"+count,_root.getNextHighestDepth()); 
ich habe dein script geringfügig modifiziert

PHP-Code:
var gMainGridHeight:Number 207;
var 
gXpositions:Array = new Array(2,4,6,8);
var 
incomingValues:Array = new Array(10203016);
var 
targetline:MovieClip this.createEmptyMovieClip("targetline"1);
targetline.lineStyle(10x000000100true"none""round""round");
setupDots(incomingValues);

function 
setupDots(incomingValues:Array) {
    
//setze die linie an den ausgangspunkt der zeichnung
    
targetline.moveTo(gXpositions[0], gMainGridHeight-incomingValues[0]);
    for (
count=1count<incomingValues.lengthcount++) {
        
//setze die zeichnung fort zum nächsten punkt
        
targetline.lineTo(gXpositions[count], gMainGridHeight-incomingValues[count]);
    }

schau mal ob es das ist was du suchst.
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 13-12-2006, 14:56   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2001
Beiträge: 166
supi, daaanke

das mit dem dot war im grunde nur zur übersicht, ob die punkte am richtigen platz sitzen. Kann man aber auch benützen, wenn man das will. Is ja nur ein MovieClip auf der Bühne Namens dot :-))

vielen dank, hier das fertige script:

Code:
function setupDots(incomingValues:Array) {
	
	trace(gXpositions[0]);
	trace(gMainGridHeight-incomingValues[0]);
    //setze die linie an den ausgangspunkt der zeichnung
	var targetline:MovieClip = this.createEmptyMovieClip("targetline", _root.getNextHighestDepth());
		targetline.lineStyle(1, 0x000000, 100, true, "none", "round", "round");
		targetline.moveTo(gXpositions[0], gMainGridHeight-incomingValues[0]);
		
	for (count=0; count<incomingValues.length; count++) {
		var dot:MovieClip = dot.duplicateMovieClip("dot"+count, _root.getNextHighestDepth());
			dot._x = gXpositions[count];
			dot._y = gMainGridHeight-incomingValues[count];
		
		//trace(gMainGridHeight-incomingValues[count]);
		
        //setze die zeichnung fort zum nächsten punkt 
        targetline.lineTo(gXpositions[count], gMainGridHeight-incomingValues[count]); 
    } 
 
}
mikolo 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 10:08 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele