;

PDA

Click to See Complete Forum and Search --> : Code not working


enpstudios
12-22-2007, 08:04 PM
I am creating a XML driven thumbnail gallery. Which works fine with this code:


import fl.transitions.Tween;
import fl.transitions.easing.*;

var fadeTween:Tween;

var imageText:TextField = new TextField();

var imageLoader:Loader;
var xml:XML;
var xmlList:XMLList;
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(new URLRequest("data.xml"));

xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);

function xmlLoaded(event:Event):void
{
xml = XML(event.target.data);
xmlList = xml.children();

for(var i:int = 0; i < xmlList.length(); i++)
{
imageLoader = new Loader();
imageLoader.load(new URLRequest(xmlList[i].attribute("thumb")));
imageLoader.x = 25;
imageLoader.y = i * 200 + 25;
imageLoader.name = xmlList[i].attribute("source");
addChild(imageLoader);
imageLoader.addEventListener(MouseEvent.CLICK, showPicture);

}
}

function showPicture(event:MouseEvent):void
{
imageLoader = new Loader();
imageLoader.load(new URLRequest(event.target.name));
imageLoader.x = 250;
imageLoader.y = stage.stageHeight / 4;
addChild(imageLoader);
imageText.x = imageLoader.x + 200;
imageText.y = 600;
for(var j:int = 0; j < xmlList.length(); j++)
{
if(xmlList[j].attribute("source") == event.target.name)
{
imageText.text = xmlList[j];
}
}

fadeTween = new Tween(imageLoader, "alpha",None.easeNone,0,1,1,true);

}

imageText.autoSize = TextFieldAutoSize.LEFT;
addChild(imageText);




What my problem is, is I am trying to format the text in the dynamically created text field by doing this:


import fl.transitions.Tween;
import fl.transitions.easing.*;

var fadeTween:Tween;

var imageText:TextField = new TextField();

var myFormat:TextFormat = new TextFormat();
myFormat.font = "Helvetica";
myFormat.color = "0xFF0000";
myFormat.bold = true;
myFormat.size = 25;
myFormat.kerning = 2;


var imageLoader:Loader;
var xml:XML;
var xmlList:XMLList;
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(new URLRequest("data.xml"));

xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);

function xmlLoaded(event:Event):void
{
xml = XML(event.target.data);
xmlList = xml.children();

for(var i:int = 0; i < xmlList.length(); i++)
{
imageLoader = new Loader();
imageLoader.load(new URLRequest(xmlList[i].attribute("thumb")));
imageLoader.x = 25;
imageLoader.y = i * 200 + 25;
imageLoader.name = xmlList[i].attribute("source");
addChild(imageLoader);
imageLoader.addEventListener(MouseEvent.CLICK, showPicture);

}
}

function showPicture(event:MouseEvent):void
{
imageLoader = new Loader();
imageLoader.load(new URLRequest(event.target.name));
imageLoader.x = 250;
imageLoader.y = stage.stageHeight / 4;
addChild(imageLoader);
imageText.x = imageLoader.x + 200;
imageText.y = 600;
for(var j:int = 0; j < xmlList.length(); j++)
{
if(xmlList[j].attribute("source") == event.target.name)
{
imageText.text = xmlList[j];
}
}

fadeTween = new Tween(imageLoader, "alpha",None.easeNone,0,1,1,true);

}

imageText.autoSize = TextFieldAutoSize.LEFT;
addChild(imageText);

imageText.setTextFormat(myFormat);


And the text doesn't format, what am I doing wrong?

tariqm
12-23-2007, 09:22 AM
I believe you have to set the format after you change what is in the textField. You should put your setting of the the text format at the end of the showPicture event like this:

function showPicture(event:MouseEvent):void
{
imageLoader = new Loader();
imageLoader.load(new URLRequest(event.target.name));
imageLoader.x = 250;
imageLoader.y = stage.stageHeight / 4;
addChild(imageLoader);
imageText.x = imageLoader.x + 200;
imageText.y = 600;
for(var j:int = 0; j < xmlList.length(); j++)
{
if(xmlList[j].attribute("source") == event.target.name)
{
imageText.text = xmlList[j];
}
}

fadeTween = new Tween(imageLoader, "alpha",None.easeNone,0,1,1,true);
imageText.setTextFormat(myFormat);
}

I think that should work.

enpstudios
12-23-2007, 09:27 AM
That worked great, thanks! :)