Quistnix
%Europe/Berlin %603 %2006, 15:28
Om te beginnen, ik ben betrekkelijk nieuw op FlashFocus, dus sorry als dit al vaker is langsgekomen of in het verkeerde forum staat. Ik heb de zoekfunctie en faq bekeken en ben niks tegengekomen, maar het kan natuurlijk altijd zo zijn dat ik iets gemist heb. Ik heb nog even gewijfeld of het in "video" of in "actionscript" moet, en aangezien mijn probleem in de scripting zit ben ik toch maar hiervoor gegaan. Sorry als dit verkeerd zit.
Enfin, genoeg introductie, mijn probleem:
Ik ben bezig met een flashwebsite waarin flv-videobestanden een belangrijke rol spelen. In de gebruikte flv heb ik cuepoints geplaatst, en de video stream ik via een FLVPlayback-component in de timeline (de property-name is film). Nu heb ik in de flash help-files een manier gevonden om de cuepoints uit te lezen, en wel met de volgende code:
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.onCuePoint = function(infoObject:Object)
{
trace("onCuePoint:");
for (var propName:String in infoObject) {
if (propName != "parameters")
{
trace(propName + " = " + infoObject[propName]);
}
else
{
trace("parameters =");
if (infoObject.parameters != undefined) {
for (var paramName:String in infoObject.parameters)
{
trace(" " + paramName + ": " + infoObject.parameters[paramName]);
}
}
else
{
trace("undefined");
}
}
}
trace("---------");
}
ns.play(" <bestandsnaam> ");
Deze code werkt wel, maar helaas alleen als ik de video stream met de ns.play-code, en ik wil de video streamen vanaf de timeline.
Nu kan ik met de volgende code wel detecteren wanneer er een cuepoint langskomt, maar het uitlezen van de naam of parameters van de cuepoint (ik heb slechts 1 van de 2 nodig) lukt daar niet mee.
var listenerObject:Object = new Object();
listenerObject.cuePoint = function(eventObject) {
trace("Elapsed time in seconds: " + film.playheadTime + "\n");
trace(film.listenerObject[name]);
};
film.addEventListener("cuePoint",listenerObject);
[code]
Nu heb ik al veel verwoedde pogingen gedaan om met behulp van deze 2 scripts een resultaat te krijgen wat doet wat ik wil, maar het verste wat ik gekomen ben is dit:
[code]
var listenerObject:Object = new Object();
listenerObject.cuePoint = function(infoObject:Object)
{
trace("onCuePoint:");
for (var propName:String in infoObject) {
if (propName != "parameters")
{
trace(propName + " = " + infoObject[propName]);
}
else
{
trace("parameters =");
if (infoObject.parameters != undefined) {
for (var paramName:String in infoObject.parameters)
{
trace(" " + paramName + ": " + infoObject.parameters[paramName]);
}
}
else
{
trace("undefined");
}
}
}
trace("---------");
}
film.addEventListener("cuePoint",listenerObject);
Dit detecteert de cuepoints wel, maar geeft in plaats van het gewenste resultaat de volgende data:
onCuePoint:
target = _level0.film
type = cuePoint
info = undefined,undefined,undefined,undefined
vp = 0
---------
Kunnen jullie mij vertellen wat ik fout doe, en hoe het opgelost kan worden?
Enfin, genoeg introductie, mijn probleem:
Ik ben bezig met een flashwebsite waarin flv-videobestanden een belangrijke rol spelen. In de gebruikte flv heb ik cuepoints geplaatst, en de video stream ik via een FLVPlayback-component in de timeline (de property-name is film). Nu heb ik in de flash help-files een manier gevonden om de cuepoints uit te lezen, en wel met de volgende code:
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
ns.onCuePoint = function(infoObject:Object)
{
trace("onCuePoint:");
for (var propName:String in infoObject) {
if (propName != "parameters")
{
trace(propName + " = " + infoObject[propName]);
}
else
{
trace("parameters =");
if (infoObject.parameters != undefined) {
for (var paramName:String in infoObject.parameters)
{
trace(" " + paramName + ": " + infoObject.parameters[paramName]);
}
}
else
{
trace("undefined");
}
}
}
trace("---------");
}
ns.play(" <bestandsnaam> ");
Deze code werkt wel, maar helaas alleen als ik de video stream met de ns.play-code, en ik wil de video streamen vanaf de timeline.
Nu kan ik met de volgende code wel detecteren wanneer er een cuepoint langskomt, maar het uitlezen van de naam of parameters van de cuepoint (ik heb slechts 1 van de 2 nodig) lukt daar niet mee.
var listenerObject:Object = new Object();
listenerObject.cuePoint = function(eventObject) {
trace("Elapsed time in seconds: " + film.playheadTime + "\n");
trace(film.listenerObject[name]);
};
film.addEventListener("cuePoint",listenerObject);
[code]
Nu heb ik al veel verwoedde pogingen gedaan om met behulp van deze 2 scripts een resultaat te krijgen wat doet wat ik wil, maar het verste wat ik gekomen ben is dit:
[code]
var listenerObject:Object = new Object();
listenerObject.cuePoint = function(infoObject:Object)
{
trace("onCuePoint:");
for (var propName:String in infoObject) {
if (propName != "parameters")
{
trace(propName + " = " + infoObject[propName]);
}
else
{
trace("parameters =");
if (infoObject.parameters != undefined) {
for (var paramName:String in infoObject.parameters)
{
trace(" " + paramName + ": " + infoObject.parameters[paramName]);
}
}
else
{
trace("undefined");
}
}
}
trace("---------");
}
film.addEventListener("cuePoint",listenerObject);
Dit detecteert de cuepoints wel, maar geeft in plaats van het gewenste resultaat de volgende data:
onCuePoint:
target = _level0.film
type = cuePoint
info = undefined,undefined,undefined,undefined
vp = 0
---------
Kunnen jullie mij vertellen wat ik fout doe, en hoe het opgelost kan worden?