Diagramberechnung mit Flash und PHP

ophasis

Mitglied
Guten Abend,

ich schäme mich zwar etwas dafür, das mein erster Post auch gleich bedeutend eine Frag ist, statt einer Antwort, jedoch stecke ich derzeit in der Sprichwörtlichen Tinte und erhoffe mir von einer kompetenten Community wie dieser einige Anregungen.

Also, zu meinem Problem:
Ich versuche derzeit ein dynamisches Diagram (wenn man es so nennen will, da nur ein Balken existiert) zu erstellen, der den Menschen die Sparmöglichkeiten einer Riesterrente zu bestimmten Konditionen aufzeigen kann/soll. Dazu werden Angaben zu Alter und Einkommen gemacht, daraus erechnen sich drei Schlüßel, einmal der Normale Rentenanspruch, dann der, welcher sich durch die Absetzungsmöglichkeiten ergibt und als letzes, der, der sich durch eine Zahlung von ~200€ ergeben würde.
In PHP ist all das wie gesagt kein Problem, allerdings soll das Projekt in Flash gebaut werden, da eine Erklärung dazu als Ton mitlaufen soll und der Balken sich wärend der Präsentation dynamisch mitbewegen soll.

So, nun zu meiner Frage, ist es möglich mit Flash die Balkenlänge dann mittels dem ersten PHP Wert zu erstellen und dann per Druck auf die Taste <Pfeiltaste Links> den Balken per Tween zur 2. Länge umzuformen, so das man nun von dort die Möglichkeit hat, per <Pfeiltaste Rechts> ihn dynamisch zur Länge vom ersten Wert zu bringen und per <Pfeiltaste Rechts> zum dritten Wert zu bringen?
(Also ähnlich einer Powerpointpräsentation, nur halt variabel durch die eigenen Angaben.)

Ich danke euch bereits jetzt für die Zeit die ihr euch fürs durchlesen genommen habt und hoffe auf Anregung.

mfg
ophasis
 
Hi,

das dürfte kein Problem darstellen:
  • Gib die drei Werte per PHP z.B. in einem XML-Baum aus:
XML:
<value>120</value>
<value>160</value>
<value>210</value>
  • Lade die Ausgabe des Scripts und füge die Werte in ein Array ein:
Code:
var current = 0; // aktueller Wert

var values = new Array();

var xm = new XML();

xm.ignoreWhite = true;

xm.onLoad = function() {
  parse(this.childNodes);
}

xm.load("script.php");

function parse(obj) {
  for (var i=0; i<obj.length; i++) {
   values[i] = parseInt(obj[i].firstChild.nodeValue, 10);
  }
  showBar(current); // ersten Wert anzeigen
}
  • Erstelle einen MovieClip mit dem Instanznamen "balken" auf der Bühne

  • Erstelle eine Funktion zum Skalieren des Balkens:
Code:
var baseLine = 300; // untere Position des Balkens festlegen

function showBar(n) {
  var h = values[n];
  current = n;
  this.onEnterFrame = function() {
    balken._height += (h - balken._height) / 6;
    if (Math.abs(h - balken._height) <= 1) balken._height = h;
    balken._y = baseLine - balken._height; // unten ausrichten
    if (balken._height == h) delete this.onEnterFrame;
  }
}


  • Lege einen Key-Listener an, um zwischen den Größen zu wechseln:
Code:
var kl = new Object();

kl.onKeyDown = function() {
  var c = Key.getCode();
  if (c == 37) switchValue(-1);
  if (c == 38) switchValue(1);
}

Key.addListener(kl);


  • Füge nun eine Funktion zum Umschalten zwischen zwei Werten hinzu:
Code:
function switchValue(d) {
  var c = current + d;
  if (c < 0) c = 0;
  if (c > values.length - 1) c = values.length - 1;
  showBar(c);
}

Der Code kann Fehler enthalten, da freihand gepostet ;)

Gruß
.
 
Zuletzt bearbeitet von einem Moderator:
Hey vielen Dank dafür, das werde ich, sobald ich zuhause bin direkt mal ausprobieren, (Mein Rechner auf Arbeit hat leider kein Flash) und dir dann posten ob das so funktioniert, aber das ich direkt auf anhieb den kompletten Code bekomme hätte ich auch nicht gedacht.

Das ist doch mal ne Community mit Biss hier.
Danke und bis zum nächsten Mal.

mfg
ophasis
 
Zurück