Fra PHP til Flash går ingen specialbogstaver, så dem må du kode dig til. Det duer heller ikke med eksempelvis &38;, men jeg har løst det anderledes. Sådan hér:
æ = |ae|
ø = |oe|
å = |aa|
& = |og|
Der er vidst ingen andre udveje, men dette burde ikke være det store problem.
Så skal resten bare se sådan hér ud:
PHP:
<?php
$array = array(
array(54, "Bamses Venner - Fl|oe|jtesangen", 205, "Techno-jazz"),
array(85, "Kandis - Min nabo har 3 hunde", 351, "Trampemusik"),
array(90, "Kjeld |og| Hilda - Se min g|oe|j", 125, "Anden genre")
);
echo "sange=";
foreach ($array as $value) {
echo ":" . $value[0] . "*" . $value[1] . "*" . $value[2] . "*" , $value[3];
}
?>
Flash:
#include "kode.as"
kode.as:
import Linje;
var track_arr:Array = new Array();
var PHP:LoadVars = new LoadVars();
PHP.onLoad = function() {
for(var i:Number = new Number(1); i < PHP.sange.split(":").length; i++) {
var temp:String = new String(PHP.sange.split(":")[i]);
addValue(temp.split("*")[0], convert(temp.split("*")[1]), temp.split("*")[2], convert(temp.split("*")[3]));
}
generateList();
}
PHP.load("
http://www.maqhem.com/exp/mitPHP.php");
function addValue(id:Number, sang:String, tid:Number, genre:String):Void {
track_arr.push([id, sang, tid, genre]);
}
function convert(cVal:String):String {
return cVal.split("|ae|").join("æ").split("|oe|").join("ø").split("|aa|").join("å").split("|og|").join("&");
}
function generateList():Void {
var count:Number = new Number(0);
for(var i:Number = new Number(0); i < track_arr.length; i++) {
this[track_arr] = new Linje(track_arr[i][0], track_arr[i][1], track_arr[i][2], track_arr[i][3]);
this[track_arr].X = 100;
this[track_arr].Y = 20 * count++ + 50;
this[track_arr].generate();
}
}
Linje.as:
class Linje {
private var id:Number;
private var val:String;
private var time:Number;
private var genre:String;
private var xp:Number;
private var yp:Number;
public function Linje(nid:Number, nval:String, ntime:Number, ngenre:String) {
id = new Number(0);
val = new String(null);
time = new Number(0);
genre = new String(null);
xp = new Number(0);
yp = new Number(0);
if(nid) {
id = nid;
}
if(nval) {
val = nval;
}
if(ntime) {
time = ntime;
}
if(ngenre) {
genre = ngenre;
}
}
public function generate():Void {
var tempValue:String = new String(val);
with(_root.createEmptyMovieClip(val + "t", _root.getNextHighestDepth()).createTextField("txt", 0, xp, yp, 0, 0)) {
autoSize = true;
wordWrap = false;
selectable = false;
html = true;
var my_fmt:TextFormat = new TextFormat();
my_fmt.color = 0x000000;
my_tfm.type = "static";
htmlText = "<font face='Courier New'>" + this.Id + " </font><b>" + this.Value + "</b> (<i>" + this.Genre + "</i>) - " + this.Time;
setTextFormat(my_fmt);
}
var tempTextWidth:Number = new Number(_root[val + "t"].txt.textWidth);
var tempTextHeight:Number = new Number(_root[val + "t"].txt.textHeight);
with(_root.createEmptyMovieClip(val + "p", _root.getNextHighestDepth())) {
_x = this.X;
_y = this.Y + 2;
beginFill(0xffff00, 100);
lineTo(tempTextWidth + 4, 0);
lineTo(tempTextWidth + 4, tempTextHeight + 2);
lineTo(0, tempTextHeight + 2);
lineTo(0, 0);
_alpha = 0;
}
_root[val + "p"].onRollOver = function() {
this.useHandCursor = false;
this._alpha = 60;
}
_root[val + "p"].onRollOut = function() {
this._alpha = 0;
}
_root[val + "p"].onPress = function() {
trace(tempValue);
}
_root[val + "t"].swapDepths(_root.getNextHighestDepth());
}
public function set Id(nid:Number):Void {
id = nid;
}
public function get Id():Number {
return id;
}
public function set Value(nval:String):Void {
val = nval;
}
public function get Value():String {
return val;
}
public function set Time(ntime:Number):Void {
time = ntime;
}
public function get Time():Number {
return time;
}
public function set Genre(ngenre:String):Void {
genre = ngenre;
}
public function get Genre():String {
return genre;
}
public function set X(newx:Number):Void {
xp = newx;
}
public function get X():Number {
return xp;
}
public function set Y(newy:Number):Void {
yp = newy;
}
public function get Y():Number {
return yp;
}
}
Så duer det fint.
Du skal selvfølgelig lige erstatte
http://www.maqhem.com/exp/mitPHP.php i kode.as med din url til din php-side. Men du må gerne bruge den til at teste efter med :)