Hallo ich würde gerne Code aus einer XML Datei in Flash laden.... blos ich probier schon 10h jetzt rum und bekommst mit den Nodes irgendwie incht gebacken... denk ich zumindest... wenn jemand helfen kann wäre super, hier mal der Code:
Code:
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;
//Anzahl der Produkte
var numOfItems:Number;
//Radius der Drehung mittels X & Y
var radiusX:Number = 300;
var radiusY:Number = 50;
//Definition des Zentrums der Drehung
var centerX:Number = Stage.width / 2;
var centerY:Number = Stage.height / 2;
//Geschwindigkeit der Drehung
var speed:Number = 0.005;
//Definition der Perspektive
var perspective:Number = 0;
//Umgehung von _root
var home:MovieClip = this;
theText._alpha = 0;
//Laden des MoveClip von Tooltip
var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
//Alphawert von Tooltip zu beginn
tooltip._alpha = 0;
//Erstellen des XML Objekts
var xml:XML = new XML();
xml.ignoreWhite = true;
//XML wenn geladen wird, dann...
xml.onLoad = function()
{
var nodes = this.firstChild.childNodes;
//Festlegen der Anzahl der Produkte
numOfItems = nodes.length;
//Produkte in der Präsentation
for(var i=0;i<numOfItems;i++)
{
//Produktvariable
var t = home.attachMovie("item","item"+i,i+1);
//Gleiche Verteilung der Produkte in der Drehung
t.angle = i * ((Math.PI*2)/numOfItems);
//Animation bzw. Bewegung der Produkte mittels Funktion mover
t.onEnterFrame = mover;
//Laden des Tooltip Text aus XML
t.toolText = nodes[i].attributes.tooltip;
//Laden des Content Text aus XML
t.content = nodes[i].attributes.content;
//Laden der Bilder aus XML
t.icon.inner.loadMovie(nodes[i].attributes.image);
//Laden der Bilder aus XML für Reflektion
t.r.inner.loadMovie(nodes[i].attributes.image);
//Rollover-Funktion
t.icon.onRollOver = over;
//Rollout-Funktion
t.icon.onRollOut = out;
//Aufrufen der Released Funktion
t.icon.onRelease = released;
}
}
function over()
{
//Aufrufen des Tooltiptextes
home.tooltip.tipText.text = this._parent.toolText;
//Positionierung des Tooltips
home.tooltip._x = this._parent._x;
home.tooltip._y = this._parent._y - this._parent._height/2;
//Bewegung des Tooltips mit dem Produkt
home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
//Alphawer für Tooltip bei Over
home.tooltip._alpha = 100;
}
function out()
{
//Ausblenden des Tooltip bei Out
delete home.tooltip.onEnterFrame;
//Alphawert für Tooltip bei Out
home.tooltip._alpha = 0;
}
function released()
{
//Tooltip bei Content anzeigen
home.tooltip._alpha = 100;
//Produkte auslbenden bis auf das angeklickte
for(var i=0;i<numOfItems;i++)
{
//Variable t für das ausgewählte Produkt
var t:MovieClip = home["item"+i];
//Neue Positionierung des ausgewählten Produkts
t.xPos = t._x;
t.yPos = t._y;
t.theScale = t._xscale;
//Deaktivieren der Funktionen Over, Out und Release sowie Enter
delete t.icon.onRollOver;
delete t.icon.onRollOut;
delete t.icon.onRelease;
delete t.onEnterFrame;
//Prüfen ob Produkt geklickt wurde
if(t != this._parent)
{
//Animation die abgespielt wird, wenn das Produkt nicht das ausgewählte ist
var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true);
var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true);
}
else
{
//Animation die abgespielt wird, wenn das Produkt das ausgewählt ist
var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true);
var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,200,1,true);
var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,320,1,true);
var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
//Laden des Content Texts
theText.htmlText = t.content;
var s:Object = this;
tw.onMotionStopped = function()
{
s.onRelease = unReleased;
}
}
}
}
function unReleased()
{
home.tooltip._alpha = 0;
delete this.onRelease;
var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true);
for(var i=0;i<numOfItems;i++)
{
var t:MovieClip = home["item"+i];
if(t != this._parent)
{
var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true);
var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
}
else
{
var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,100,t.theScale,1,true);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,100,t.theScale,1,true);
var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true);
var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true);
tw.onMotionStopped = function()
{
for(var i=0;i<numOfItems;i++)
{
var t:MovieClip = home["item"+i];
t.icon.onRollOver = Delegate.create(t.icon,over);
t.icon.onRollOut = Delegate.create(t.icon,out);
t.icon.onRelease = Delegate.create(t.icon,released);
t.onEnterFrame = mover;
}
}
}
}
}
//Festlegen der Position wo der Tooltip erscheint
function moveTip()
{
home.tooltip._x = this._parent._x;
home.tooltip._y = this._parent._y - this._parent._height/2;
}
//Laden von XML
xml.load("icons.xml");
//Funktion mover für Bewegung der Produkte
function mover()
{
this._x = Math.cos(this.angle) * radiusX + centerX;
this._y = Math.sin(this.angle) * radiusY + centerY;
var s = (this._y - perspective) /(centerY+radiusY-perspective);
this._xscale = this._yscale = s*100;
this.angle += this._parent.speed;
this.swapDepths(Math.round(this._xscale) + 100);
}
//Steuerung der Drehung mit der Maus
this.onMouseMove = function()
{
speed = (this._xmouse-centerX)/35000;
}
Code:
<?xml version="1.0" encoding="utf-8"?>
<icons>
<icon image="icon1.png">
<tooltip><![CDATA[3 Spenderdosen]]></tooltip>
<content><![CDATA[<li>Durch die große Öffnung der 3 zunächst leeren Spenderdosen können Sie Ihre Pflegeprodukte einfach und hygienisch füllen.</li><br><li>Durch den Verschiebbaren Boden und die kleine Entnahmeöffnung der 3 Spenderdosen können Sie Ihre Pflegeprodukte wieder einfach und hygienisch entnehmen.</li><br>]]></content>
</icon>
<icon image="icon2.png">
<tooltip><![CDATA[VARIO<sup>1, 2, 4</sup>]]></tooltip>
<content><![CDATA[<li>Durch die große Öffnung der 3 zunächst leeren Spenderdosen können Sie Ihre Pflegeprodukte einfach und hygienisch füllen.</li><br><li>Durch den Verschiebbaren Boden und die kleine Entnahmeöffnung der 3 Spenderdosen können Sie Ihre Pflegeprodukte wieder einfach und hygienisch entnehmen.</li><br>]]>
</content>
</icon>
<icon image="icon3.png">
<tooltip><![CDATA[VARIO<sup>App</sup>]]></tooltip>
<content><![CDATA[<li>Durch die große Öffnung der 3 zunächst leeren Spenderdosen können Sie Ihre Pflegeprodukte einfach und hygienisch füllen.</li><br><li>Durch den Verschiebbaren Boden und die kleine Entnahmeöffnung der 3 Spenderdosen können Sie Ihre Pflegeprodukte wieder einfach und hygienisch entnehmen.</li><br>]]>
</content>
</icon>
<icon image="icon4.png">
<tooltip><![CDATA[VARIO<sup>Trans</sup>]]></tooltip>
<content><![CDATA[<li>Durch die große Öffnung der 3 zunächst leeren Spenderdosen können Sie Ihre Pflegeprodukte einfach und hygienisch füllen.</li><br><li>Durch den Verschiebbaren Boden und die kleine Entnahmeöffnung der 3 Spenderdosen können Sie Ihre Pflegeprodukte wieder einfach und hygienisch entnehmen.</li><br>]]>
</content>
</icon>
<icon image="icon5.png">
<tooltip><![CDATA[BAG2FLY]]></tooltip>
<content><![CDATA[<li>Durch die große Öffnung der 3 zunächst leeren Spenderdosen können Sie Ihre Pflegeprodukte einfach und hygienisch füllen.</li><br><li>Durch den Verschiebbaren Boden und die kleine Entnahmeöffnung der 3 Spenderdosen können Sie Ihre Pflegeprodukte wieder einfach und hygienisch entnehmen.</li><br>]]>
</content>
</icon>
</icons>