Ok, det er officielt. Jeg er ved at blive vanvittig!
Jeg fik et fantastisk link (herinde fra, fantastisk forum tak gutter) til en måde at kommunikere mellem AS3 og JS. Det virkede som en drøm, så jeg knoklede på, lige indtil jeg fik den idé at teste det i IE. Der røg (som det plejer at gøre med IE - aka lortebrowser) mit humør! Intet virker i IE! Skal så ærligt indrømme at Chrome heller ikke er helt tilfreds, så det er faktisk kun FF der er tilfreds. IE debugger giver nogen sindsyge fejl, som jeg ikke forstår en jante af, så 50 point gives til nogen der kender en nice og gratis JS-debugger (der giver fejlmeddelelser med mening). Her er mit JS og AS
Javascript:
window.onload = function() {
var numPlaying = 1;
var pObj = document.querySelectorAll('a.pElement');
for (var i=0;i<=pObj.length;i++) {
pObj[i].onmousedown = function() {
callToActionscript(this.id);
numPlaying = i;
}
}
function getFlashMovie(player) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[player] : document[player];
}
function callToActionscript(songID)
{
getFlashMovie("flash").sendToActionscript(songID);
}
}
Actionscript:
import flash.media.SoundMixer;
import flash.external.ExternalInterface;
var ToggleValue = 1;
songField.text = "Click Play";
var songID;
ExternalInterface.addCallback("sendToActionscript", callFromJavaScript);
function callFromJavaScript(getSongID):void
{
songID = getSongID;
runStop(new MouseEvent(MouseEvent.CLICK));
runPlay(new MouseEvent(MouseEvent.CLICK));
ToggleValue = 2;
}
play_button.addEventListener(MouseEvent.CLICK,Toggle);
function Toggle(me) {
if (ToggleValue == 1) {
ToggleValue = 2;
runPlay(me);
} else {
ToggleValue = 1;
runStop(me);
}
}
function runPlay(event:MouseEvent):void {
play_button.alpha = 0;
var request:URLRequest = new URLRequest("http://ugotmusic.com/includes/musicLibCTRL.php?id=" + songID);
var extVars:URLLoader = new URLLoader();
extVars.dataFormat = URLLoaderDataFormat.VARIABLES;
extVars.addEventListener(Event.COMPLETE, varHandler);
extVars.load(request);
songField.text = "Loading - Please Wait";
}
function varHandler(evt:Event) {
var numSongs = evt.target.data.volume;
var artistName = evt.target.data.artist;
var song = evt.target.data.songname;
var Songfile = evt.target.data.filename;
//var autoplay = evt.target.data.autoplay;
var songObject:Sound = new Sound();
songObject.load(new URLRequest(Songfile));
var totalSongSize = songObject.bytesTotal;
var songBufferSize = totalSongSize /3;
if (songObject.bytesLoaded == songBufferSize) {
artistField.text = artistName;
songField.text = song;
songObject.play();
}
}
function runStop(event:MouseEvent):void {
SoundMixer.stopAll();
artistField.text = "";
songField.text = "Click Play";
play_button.alpha = 1;
var autoplay = 0;
}