We help IT Professionals succeed at work.

Need flash button to load xml url

Brant Snow
Brant Snow asked
on
Medium Priority
1,611 Views
Last Modified: 2012-05-05
K i have attached the code below and some of the xml, there is a location in the flash code that I have surrounded by ?????????????????????????????????????????? so it stands out.  I have a carosel and I attach information from an xml file.  I know the properties of linkage are being loaded from the xml file because if I trace it, it comes out right, however in the coding if I trace it when I click on a movieclip it reads as undefined.
xml
 
<icons>
 
<icon name="Vita C" image="products/vitc.png" tooltip="Natural Absorption Vitamin C" content="&lt;ul&gt;&lt;li&gt;Unique blend of three natural foods high in Vitamin C&lt;/li&gt;&lt;br&gt;&lt;li&gt;Vita C3 contains NO ascorbic acid and NO fillers&lt;/li&gt;&lt;br&gt;&lt;li&gt;Vita C3 also contains a food based Calcium&lt;/li&gt;&lt;br&gt;&lt;li&gt;Just one capsules provides your daily serving&lt;/li&gt;&lt;br&gt;  &lt;/ul&gt;" motto="No Fillers&lt;br&gt;&lt;br&gt;High Potency&lt;br&gt;&lt;br&gt;Maximum Absorbtion" linkage="http://www.google.com" buynow="http://www.google.com"/>
 
</icons>
 
 
 
 
 
 
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;
 
var numOfItems:Number;
var radiusX:Number = 300;
var radiusY:Number = 40;
var centerX:Number = Stage.width / 2;
var centerY:Number = Stage.height / 2;
var speed:Number = 0.01;
var speeddecrease:Number = 2500;
var speeddecrease2:Number = 5000;
var perspective:Number = 60;
var home:MovieClip = this;
theText._alpha = 0;
theText.embedFonts = true;
 
var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
tooltip._alpha = 0;
 
var xml:XML = new XML();
xml.ignoreWhite = true;
 
 
 
xml.onLoad = function()
{
	var nodes = this.firstChild.childNodes;
	numOfItems = nodes.length;
	for(var i=0;i<numOfItems;i++)
	{
		var t = home.attachMovie("item","item"+i,i+1);
		t.angle = i * ((Math.PI*2)/numOfItems);
		t.onEnterFrame = mover;
		t.toolText = nodes[i].attributes.tooltip;
		t.content = nodes[i].attributes.content;
		t.destination = nodes[i].attributes.destination;
		t.linkage = nodes[i].attributes.linkage;
		t.buynow = nodes[i].attributes.buynow;
		t.icon.inner.loadMovie(nodes[i].attributes.image);
		t.r.inner.loadMovie(nodes[i].attributes.image);
		t.icon.onRollOver = over;
		t.icon.onRollOut = out;
		t.icon.onRelease = released;
		
	}
}
 
function over()
{
	//BONUS Section
	var sou:Sound = new Sound();
	sou.attachSound("sover");
	sou.start();
	
	home.tooltip.tipText.text = this._parent.toolText;
	home.tooltip._x = this._parent._x;
	home.tooltip._y = this._parent._y - this._parent._height/2;
	home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
	home.tooltip._alpha = 100;
}
 
function out()
{
	delete home.tooltip.onEnterFrame;
	home.tooltip._alpha = 0;
}
 
 
function released()
{
	
	
	//BONUS Section
	var sou:Sound = new Sound();
	sou.attachSound("sdown");
	sou.start();
 
	
 
	home.tooltip._alpha = 0;
	for(var i=0;i<numOfItems;i++)
	{
		var t:MovieClip = home["item"+i];
		t.xPos = t._x;
		t.yPos = t._y;
		t.theScale = t._xscale;
		delete t.icon.onRollOver;
		delete t.icon.onRollOut;
		delete t.icon.onRelease;
		delete t.onEnterFrame;
		
		if(t != this._parent)
		{
			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
		{
			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,170,1,true);
			var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
 
??????????????????????????????????????????????????			
 
trace (t.linkage);
			readtime.onRelease = function ()
			{
                         trace(t.linkage);				
                        getURL(t.linkage);
			}
			
	????????????????????????????????????????????????????????		
			theText.htmlText = t.content;
			var s:Object = this;
			tw.onMotionStopped = function()
			
			{
				s.onRelease = unReleased;
			}
		}
	}
}
 
function unReleased()
{
	//BONUS Section
	var sou:Sound = new Sound();
	sou.attachSound("sdown");
	sou.start();
	
	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;
				}
			}
		}
	}
}
 
 
function moveTip()
{
	home.tooltip._x = this._parent._x;
	home.tooltip._y = this._parent._y - this._parent._height/2;
}
 
xml.load("icons.xml");
 
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);
}
 
this.onMouseMove = function()
{
	
	speed = (this._xmouse-centerX)/speeddecrease;
	
		
}
 
this.onEnterFrame = function()
{
	if (this._xmouse < 50 or this._xmouse > 930 or this._ymouse < 40 or this._ymouse > 260)
	{speed = speed - (speed/15);
	}
	
}

Open in new window

Comment
Watch Question

Top Expert 2009
Commented:
Hi, this is what i see.

the first t.linkage is defined in the xml onload method.
you create the variable t there locally, and give it a dynamic property of linkage which is defined in the xml - no problem.

then in your released method, you define t again (now a different instance) and you try to trace the linkage property which this t instance DOES not have, hence it's undefined.

blu.

Author

Commented:
blu, i think i should have clarified more, the first trace (t.linkage) in the section of my question works perfect, but for some reason my onRelease function there some how messes it up and if I press it (readtime.onRelease) my trace comes back undefined.  Somehow the onRelease section is not getting the information and I don't understand why.

Author

Commented:
Thanks, it wasnt quite what you were thinking but your train of thought lead me in the right direction and I figured it out.  Thanks

Explore More ContentExplore courses, solutions, and other research materials related to this topic.