PDA

Volledige versie bekijken : Tekstvelden laten bewegen


Maxcim
%Europe/Berlin %461 %2010, 12:05
Hallo,

wij zijn voor school bezig met een project waarbij we woorden vanuit een database om de x aantal seconden op het scherm moeten laten verschijnen.

We zijn nu zover dat het in principe helemaal werkt. Om de x aantal seconden wordt de database uitgelezen en die woorden uit de database verschijnen op het scherm.

Wat wij nu nog willen is dat de tekstvelden die worden gegenereerd subtiel bewegen. Dus niet statisch op het scherm staan maar langzaam bewegen.

Het wil ons maar niet lukken om dit werkend te krijgen. Zou iemand ons misschien hiermee kunnen helpen?

Het bestand (werkt ook bij jullie, haalt uit online database):
http://www.maxcim.nl/school/autosave/flashside.rar

Code:

import flash.utils.*;
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML;

xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
// timer van 20 sec
var myTimer:Timer = new Timer(1);

myTimer.addEventListener("timer", timedFunction);

// Start de timer
myTimer.start();

// uit te voeren in de 20 sec
function timedFunction(eventArgs:TimerEvent)
{
//xmlLoader = new URLLoader();
//xmlData = new XML();



xmlLoader.load(new URLRequest("http://maxcim.nl/school/autosave/new3.php?cacheBreaker=" + Math.random() * 1000));

}
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
ParseBooks(xmlData);
}

//text()[nummer] is om een regel van de xml op te halen, dit moeten we loepen
//b.v. trace(bookInput.item.text()[1]);

function ParseBooks(bookInput:XML):void {
var authorList:XMLList = bookInput.item;


//de loop. hier gebeurt alles hier wordden de xml items uitgelezen
trace(authorList.length());
for (var i:int = 0; i < authorList.length(); i++)
{

var authorElement:XML = authorList[i];
//trace(authorElement);


var myFont = new Font1();

var myFormat:TextFormat = new TextFormat();
myFormat.size = 35;
myFormat.align = TextFormatAlign.CENTER;
myFormat.color = 0xffffff;
myFormat.font = myFont.fontName;

var myText:TextField = new TextField();
myText.defaultTextFormat = myFormat;
myText.text = authorElement;
myText.width = 30;
addChild(myText)

var getalx = Math.random()*stage.stageWidth;
var getaly = Math.random()*stage.stageHeight;

trace ("x coordinaat: " + getalx + "y coordinaat " + getaly);

myText.x = getalx
myText.y = getaly


}


}

Alvast bedankt :D

Salvago
%Europe/Berlin %493 %2010, 12:50
Volgens mij heb je dit al eerder gedaan, hier geldt dus weer: wat 'werkt niet'. Het werkt een stuk beter als je duidelijk aangeeft wat er precies gebeurt.
Blijven de textboxes staan op hun plek? Springen ze rond? Wat geeft de trace? Heb je uberhaupt al een functie gemaakt die de beweging verzorgd?


Zo kan ik alleen maar gokken dat je het laatste niet hebt gedaan. Je moet dus je textbox naar het ENTER_FRAME event laten luisteren, en die koppel je aan een functie die de beweging afhandelt.