 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
07.06.2007, 14:30
|
#1
|
|
TP-Senior
Registriert seit: Nov 2004
|
[Pie Chart, Kreis- Tortendiagramm] Wie umsetzen?
Hi,
ein Kumpel möchte dass ich ihm einen Pie Chart baue. Habe ich getan. Nun weiß ich leider nicht (natürlich nicht...) wie ich so etwas skripten muss.
Alles was ich im Web gefunden habe, begreif ich nicht.
Ich habe mir dann versucht eine vereinfachte Lösung auszudenken.
Anstatt, dass das Ganze großartig animiert wird, habe ich einen 12/12 Kreis erstellt, bei dem eine Maske halt bei einem ungefähren Wert entweder da oder da stoppen soll. (Vereinfachtes Beispiel in der Anlage). Die einzelnen Teile entsprechen 8,33%. Wenn jetzt ein Wert kleiner als 4,16 ist, soll er dann auf die Bildbezeichnung "0" gehen. Und über dem Wert halt natürlich auf 8,33, welches die erste "Schnitte" anzeigt. Nach diesem Prinzip sollte es für alle Teile gehen.
Die Daten die ich bekomme sind einfache numerische Werte. Also kein XML oder so. (Z.B. "112" Personen stimmten bereits zu)
Wie gehe ich das am besten an? Oder hat jemand zufällig eine Quelldatei die so ähnlich funktioniert?
Für jede Hilfe dankbar!
LG,
J
__________________
Ich kämpfe mit Flash Pro 8
|
|
|
07.06.2007, 14:42
|
#2
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
wenn du den wert hast, wie wärs mit
PHP-Code:
if(wert>=0 && wert<=8,33){
gotoAndStop("bla")
}
als Beispiel. Enstprechend auch für die anderen Werte..
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
07.06.2007, 15:09
|
#3
|
|
TP-Senior
Registriert seit: Nov 2004
|
Hi
also
ich definiere eine Variable die noch nicht feststeht
wert = ""; (so?)
if(wert>=0 && wert<=8,33){
gotoAndStop("bla")
}
Ich versteh das nicht ganz. Ich lese jetzt hier draus:
Wenn "wert" größer als 0 und kleiner als 8,33 ist, geh zu "bla".
Oder verstehe ich das falsch?
ich brauche ja etwas, das auf den Bildbezeichner "0" oder "8,33" geht, bzw die Reihe durch bis 100 je nach Wert der aufgerundet oder abgerundet wird.
Der Kreis ist ja gesamt 100%. Wenn jetzt 25 Personen kommen, soll es auf den Bildbezeichner 25 springen.
Kommen 24, soll er trotzdem auf die 25 springen usw. Ist das machbar?
Ich bin leider wie im AS auch in Mathe ne Niete...
EDIT:
Wenn ich das z.B so mache:
PHP-Code:
wert = 0;
if(wert>=0&& wert<=8,33){
gotoAndStop("0")
}
if(wert>=8,33&& wert<=16,66){
gotoAndStop("8,33")
}
if(wert>=16,66&& wert<=25){
gotoAndStop("16,66")
}
dann springt er immer auf 16,66.
?
__________________
Ich kämpfe mit Flash Pro 8
Geändert von jason voorhees (07.06.2007 um 15:16 Uhr).
|
|
|
07.06.2007, 16:02
|
#4
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
sorry fehler vom Amt.dann halt so. Da du ja den Kreis bis in Schlüsselbild 60 aufgeteilt hast, sollte das nun so funktionieren:
in der Hauptzeitleiste folgendes in Schlüsselbild:
PHP-Code:
wert = 30;
ziel = Math.round(wert/100*60);
trace(ziel);
kreis.gotoAndStop(ziel);
du brauchst nun nur deine Werte in den Textfeldern ändern, bzw. Die grafiken auf der Timelin umdrehen(kleinsten wert nach vorne etc);
Das ganze ist aber nicht die feine engliche Art, für ein Diagramm. Kuck dir mal curceTo, beginnFill, moveTo etc an. Ein bißchen Math.sin und Math.cos gehört auch noch dazu. Das geht dann noch etwas eleganter.
Eine andere Lösung wären aber auch Balken, was auch sehr gut aussehen kann. Wäre zum Anfang auch leichter umzusetzten.
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
07.06.2007, 18:07
|
#5
|
|
TP-Senior
Registriert seit: Nov 2004
|
Vielen Dank!
Cooler Trick
Leider habe ich ganz vergessen zu erwähnen, dass sich es ja um zwei Werte handeln muss. Also so wie "Ja und Nein" die miteinander verrechnet werden.
Ich habe das sogar hinbekommen mit dem Verändern, leider geht das jetzt mit den 60 Frames nicht mehr. Gibt es eine Möglichkeit das wieder einzubauen in diese Funktion:
PHP-Code:
wert1 = 200
wert2 = 100
pie = 100
ausgabe = (Math.round (pie/wert1*wert2));
trace (ausgabe);
kreis.gotoAndStop(ausgabe);
Hier springt er nicht mehr zur 50, sondern zur 83,3.
Grüße.
EDIT:
Ahh, den einen Teil hab ich begriffen  :
PHP-Code:
wert1 = 100
wert2 = 88
pie = 100
ausgabe = (Math.round (pie/wert1*wert2));
trace (ausgabe);
ziel = Math.round(ausgabe/100*60);
trace (ziel);
kreis.gotoAndStop(ziel);
Aber wenn "wert2" höher ist als "wert1", gibt es ein falsches Ergebnis.
Kann man das noch Umgehen? Oder habe ich jetzt einen Gedankenfehler?
__________________
Ich kämpfe mit Flash Pro 8
Geändert von jason voorhees (07.06.2007 um 18:26 Uhr).
|
|
|
07.06.2007, 21:51
|
#6
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
versteh nicht ganz, was der zweite wert für ne relevanz hat. Wann kommt der und in welcher Abhängigkeit zu was wird der berechnet.
Schreib mal bitte ein kleines Beispiel, mit zwei unterschiedlichen Aktionen. Dann kann ich mir mehr darunter vorstellen. Wer halt alt... 
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
08.06.2007, 00:10
|
#7
|
|
TP-Senior
Registriert seit: Nov 2004
|
Na alt werden wir alle
Deswegen auch die Frage ob ich evtl. einen Gedankenfehler habe.
Also mal nen Beispiel:
Der User hat zwei Möglichkeiten zu entscheiden.
A oder B.
Entscheiden sich numerisch mehr User für B, funktioniert meine Rechnung komischerweise nicht mehr.
Die variierende Anzahl der User ergibt ja zusammen immer 100%
Bloß irgendetwas stimmt in der Rechnung nicht. Warum sollte bei einer höheren Beteiligung an Antwort B das Ganze dann nicht mehr funktionieren?
(Beim Testen, springt der Film immer auf "0")
Wir haben also eine Anzahl an Usern:
Wert1
Dann die Anzahl der Entscheidung A:
Wert2
und die Anzahl der Entscheidung B:
Wert3
Ich habe nu gedacht, dass bei mir "pie=100" gleich der Anzahl der User ist.
Irgendwie hab ich jetzt den Faden verloren...
Erkennst du ungefähr was ich meine?
LG,
J
__________________
Ich kämpfe mit Flash Pro 8
|
|
|
08.06.2007, 10:01
|
#8
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
wenn ich nach deinem Beispiel gehe
wert1 = 100(Entscheidungen A)
wert2 = 88 (Entscheidungen B)
dann muß doch die Summe dieser beiden Werte(hier 188 ) die Anzahl der User ergeben. Oder lieg ich da falsch.
Wenn du nun den prozentualen Anteil der Entscheidung A auf alle User auslesen willst, funktioniert das ja, wie wir sehen. Bei Entscheidung B das gleiche.
Zitat:
|
ausgabe = (Math.round (pie/wert1*wert2));
|
Das macht für mich keinen Sinn, was willst du hier als Ergebnis haben?
Wenn Du deinen Kreis MC bis auf Schlüsselbild 100 oder 360 erweiterst, kannst Du Dir auch alle Umrechnungsschritte auf max 60 ersparen.
Entweder 100 für die Prozente, oder 360 Grad für den Kreis. Diese beiden feste werte kann die keiner nehmen, die hat uns ja die Mathemathik vorgegeben.
Hierbei fällt ja auch auf, das 60 der 6 Teil eines gesamten Kreises ist. So könntest du auch 1/6 in Betracht ziehen.
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
08.06.2007, 12:34
|
#9
|
|
TP-Senior
Registriert seit: Nov 2004
|
Mojen Stephan, vielen Dank für deine Geduld...
Ich habe ein Talent nicht auf den Punkt zu kommen.
Ich habe hier mal konkret eine Berechnung wo es nicht klappt, da der wert2 höher ist (Das erste Beispiel war nur jenes welches geklappt hat):
PHP-Code:
wert1 = 150
wert2 = 233
pie = 100
ausgabe = (Math.round (pie/wert1*wert2));
trace (ausgabe+" Prozent");
ziel = Math.round(ausgabe/100*60);
trace ("Frame: "+ziel);
kreis.gotoAndStop(ziel);
Da kommt als Ergebnis 155%+Frame 93
Das Diagramm zeigt 100%. Man müsste doch sozusagen die 388 User noch als 100% definieren, oder irre ich mich?
Das ist das Problem. Oder habe ich noch immer einen Denkfehler 
__________________
Ich kämpfe mit Flash Pro 8
|
|
|
08.06.2007, 13:17
|
#10
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
Zitat:
|
ausgabe = (Math.round (pie/wert1*wert2));
|
tut mir leid, ich kanns nicht nachvollziehen. Was macht das, wozu ist das gut. Gib mal bitte ne detailierte Aufgabenstellung, mit aussagekräftigen Namen der Werte. Was macht der User, was wird gespeichert, was wird ausgegeben, warum weshalb, wohin, wann usw...
Mir fehlt das Verständnis, wenn ich einen Prozentwert brauche, wozu Du die beiden Werte, die die Summe bilden sollen ( pie = wert1+wert2 ), nochmals im Nenner multiplizierst. Mehr als einem Dividenden, einen Divisor und nen Multiplikator braucht doch keiner um Prozent zu errechnen.
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
08.06.2007, 13:26
|
#11
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
Oder ist das ganze eigentlich ne Art Umfrage.
70 User beantworten eine Frage mit ja(wert1).
50 User beantworten die selbe Frage mit nein(wert2).
Summe alle User ist 120.
Nun willst Du wissen, wieviele der 120 User mit wert1 gestimmt haben, und wieviele der User mit wert2 gestimmt haben.
Ists vielleicht doch so einfach??
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
08.06.2007, 14:05
|
#12
|
|
TP-Senior
Registriert seit: Nov 2004
|
Öhm.. ja 
so meinte ich das eigentlich. (Ich sitz einfach schon zuviel vorm PC  )
__________________
Ich kämpfe mit Flash Pro 8
|
|
|
08.06.2007, 19:37
|
#13
|
|
TP-Moderator
Registriert seit: Feb 2003
Ort: Erfurt
|
Tja, dann hast Du zwei möglichkeiten:
entweder eine zweite Grafik, für jeden wert eine
oder
du entscheidest vorher, welche Ausgabe für welchen der beiden werte erfolgen soll.
in beiden fällen brauchst du dann nicht mehr als die 4 Zeilen aus meiner zweiten Antwort
__________________
Schöne Grüße aus Thüringen
Stephan Page
Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum
schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:01 Uhr.
|
 |