Mal wieder ein kleiner Stuff-Thread von meiner Wenigkeit

. Ist nichts besonderes, aber vielleicht kann es ja jemand gebrauchen.
Ich habe mir heute einen kleinen Newsticker gebastelt, den ich euch gerne zur Verfügung stellen möchte. Erstellt einfach ein Textfeld über die gesamte Größe des Films und weist ihm den Instanznamen "ticker_txt" zu. Dann den untenstehenden Code in Frame1 einfügen und die Nachrichten über HTML (Object-Tag) übergeben. Falls das jetzt zu kompliziert klingt: in der Zip ist bereits alles fertig.
Newsticker ansehen ActionScript:
function parseNewsText ():Void
{
var tmpNewsArray:Array = newstext.split("||");
for (var i:Number=0; i<tmpNewsArray.length; i++)
{
tmpNewsArray[i] = tmpNewsArray[i].split("|");
news.push({text:tmpNewsArray[i][0], newsurl:tmpNewsArray[i][1]});
}
}
function initNewsText ():Void
{
clearInterval(tickerwait_int);
if (++news_index == news.length) news_index = 0;
// set defaults
ticker_index = 0;
ticker_txt.text = "";
// start interval
ticker_int = setInterval(writeNewsText, wait_nextChar, news[news_index].text);
}
function writeNewsText (__text:String):Void
{
// add the next newstext char
ticker_txt.text += __text.charAt(ticker_index++);
// if completed load next newstext
if (ticker_index == __text.length)
{
clearInterval(ticker_int);
tickerwait_int = setInterval(initNewsText, wait_nextNews);
}
}
function drawClicker (target:MovieClip):Void
{
//draw the clicker
target.createEmptyMovieClip("clicker", target.getNextHighestDepth());
target.clicker.beginFill(0x00000);
target.clicker.moveTo(0, 0);
target.clicker.lineTo(Stage.width, 0);
target.clicker.lineTo(Stage.width, Stage.height);
target.clicker.lineTo(0, Stage.height);
target.clicker.lineTo(0, 0);
target.clicker.endFill();
target.clicker._alpha = 0;
// save its parent
target.clicker.__parent = target;
// onRelease, redirect to news-url
target.clicker.onRelease = function():Void
{
getURL(this.__parent.news[this.__parent.news_index].newsurl, "_blank");
}
}
System.useCodepage = true;
// wait times
var wait_nextChar:Number = 100;
var wait_nextNews:Number = 5000;
// interval-ids
var ticker_int:Number, tickerwait_int:Number;
// indexes
var ticker_index:Number;
var news_index:Number = -1;
// save news in this array
var news:Array = new Array();
this.onEnterFrame = function ()
{
// if newstext not loaded, return
if (this.newstext == undefined) return;
delete this.onEnterFrame;
// draw the movieclip that redirects to spec. url
drawClicker(this);
// parse the given newstext an save it in an array
parseNewsText();
// start typing the text
initNewsText ();
}
Hier ein Beispiel der Variablenübergabe von PHP zu Flash. Sollte kein Problem sein, dass auf MySQL umzuschreiben.
PHP-Code:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>newsticker</title>
</head>
<body bgcolor="#ffffff">
<?php
// der newsstring muss in diesem format vorliegen: text1|url1 [||text2|url2]
$newstext = "Dies sind die aktuellen News...|http://web.de||Elefant tritt Maus zu tode|http://web.de||Maus schlägt zurück|http://web.de||Krankenwagen im Dauereinsatz|http://web.de";
$newstext = utf8_encode($newstext);
?>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="400" height="16" id="newsticker" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="wmode" value="transparent">
<param name="movie" value="newsticker.swf?newstext=<?php echo $newstext; ?>" />
<param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
<embed src="newsticker.swf?newstext=<?php echo $newstext; ?>" quality="high" bgcolor="#ffffff" wmode="transparent" width="400" height="16" name="newsticker" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>
Code ist eigentlich selbsterklärend. Wer dennoch Fragen haben sollte, nur zu
Sodale. Viel Spaß damit.