PDA

Volledige versie bekijken : ExternalInterface.addCallback C# (.NET) en AS3.0?


bilow
%Europe/Berlin %517 %2009, 13:24
Hallo mensen,
ik ben bezig met een schoolproject waarbij ik via een C# applicatie naar Flash een 3tal variabelen door krijg gestuurd. Dit wordt uitgelezen in Flash (AS3).. Ik ben niet echt bekend met AS3 dus heb ik een voorbeeld code gevonden op internet wat goed werkt..
Maar ik wil graag als er bij bijv. txt3.text een bepaald getal voorkomt een video afspeelt. Dit wil niet echt lukken,, Ik had iets eerder al gepost om in AS3 FLVPlayback te gebruiken, dit was me gelukt.. maar in combinatie wil het niet echt lukken..
Hieronder de code.

//Vars ontvangen
ExternalInterface.addCallback("persoonsid",persoonsid);
ExternalInterface.addCallback("positie",positie);
ExternalInterface.addCallback("type",type);
//verzender
sendBtn.addEventListener(MouseEvent.CLICK, send);

//uitschrijven van txt
function persoonsid(val:String):void
{
txt1.appendText(val + "\n");
}
function positie(val:String):void
{
txt2.appendText(val + "\n");
}
function type(val:String):void
{
txt3.appendText(val + "\n");
}
function send(evt : Event):void
{
outTxt.text = "afgelopen";
ExternalInterface.call("sendText", outTxt.text);
outTxt.text = ""; //en weer leegmaken
}
//Video afspelen
var vidConnection:NetConnection = new NetConnection();
vidConnection.connect(null);
var vidStream:NetStream = new NetStream(vidConnection);
var vidDuration:Number;
var vidClient:Object = new Object();
vidClient.onMetaData = function (md:Object):void {
vidDuration = md.duration;
}
vidStream.client = vidClient;

var myVideo:Video = new Video();
myVideo.x = myVideo.y = 50;
myVideo.attachNetStream(vidStream);

addChild(myVideo);
vidStream.play("test.flv");

this.addEventListener(Event.ENTER_FRAME, checkVid);
function checkVid(evt:Event):void {
var timeDiff = (vidDuration - vidStream.time)
if (timeDiff < 1 && timeDiff > 0) {
trace("Video einde over 1 seconde");
// !!! Activeer "function send(evt : Event):void" ??? weet niet hoe dit gaat..
}
}
//btw ik heb er een NetStream van gemaakt omdat het anders niet lukte
//om de einde van het filmpje te bepalen
Dit werkt wel,, maar niet op de commando van de doorgestuurde var.
Ik wil dus dat de video begint met spelen als er in txt3.text bijvoorbeeld de cijfer 1 staat.
Na het einde van de filmpje wordt er de txt afgelopen verstuurd naar de C#, en deze stuurt hierop weer een nieuwe var door zodat er weer een ander filmpje gestart kan worden..

Hoop dat jullie me hiermee kunnen helpen..

Gr,, Bilow

Jan
%Europe/Berlin %515 %2009, 13:21
function type(val:String):void
{
if(val=="1")
vidStream.play("test.flv");

txt3.appendText(val + "\n");
}
function send(val:String):void
{
ExternalInterface.call("sendText", val);
}

if (timeDiff < 1 && timeDiff > 0) {
trace("Video einde over 1 seconde");
// !!! Activeer "function send(evt : Event):void" ??? weet niet hoe dit gaat..
send("afgelopen");
}

Groeten;
Jan