Link to home
Start Free TrialLog in
Avatar of stonerome
stonerome

asked on

GotoURL at end of FLV embedded in SWF

Hi all,

I have a simple one frame swf that is playing back an FLV file, via the built-in Flash video player component  (Flash CS3). That swf is then embedded into a HTML page.

When the FLV is finished playing, I want to load a new HTML page.

I've seen post to "add the open URL tag on the last frame" but this obviously doesn't work well, because the embedded FLV will never finish exactly on the same frame.

Also, I believe I may have to make some changes to the HTML code to get around newer Flash security features.

THanks - Cory
Avatar of s8web
s8web

you will have to create an event cue point at the end of your flv.

 (http://livedocs.adobe.com/flash/9.0/flvencoder/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_NoParts&file=FLV_25.html)

Then add actionscript to your swf that listens for that cue point and then does something (in this case, geturl) based on the name of the cuepoint:

var listenerObject:Object = new Object();
listenerObject.cuePoint = function(eventObject:Object):Void {
      getURL("yoururlhere.com");
      trace("endcue: " + eventObject.info.name);
      trace("endcue: " + eventObject.info.type);
}
yourmovienamehere.addEventListener("cuePoint", listenerObject);
Avatar of rascalpants

here is a solution for AS 3.0:

http://www.experts-exchange.com/Software/Photos_Graphics/Web_Graphics/Macromedia_Flash/Q_24322811.html


basically, you are looking for the onStatus event handler to return "NetStream.Buffer.Full"...  


rp / ZA
Avatar of stonerome

ASKER

I've added a cue point to the flv , named
end_cue

I'm not sure what I need to modify in your code (aside from the getURL).

My movie name...is the the name of the swf that will have this action in it? If so, that name of that is intro.swf.

Thanks for the help -

var listenerObject:Object = new Object();
listenerObject.cuePoint = function(eventObject:Object):Void {
      getURL("yoururlhere.com");
      trace("endcue: " + eventObject.info.name);
      trace("endcue: " + eventObject.info.type);
}
yourmovienamehere.addEventListener("cuePoint", listenerObject);
I put this in, and it's not working, but I'm guessing I'm not doing something right:


var listenerObject:Object = new Object();
listenerObject.cuePoint = function(eventObject:Object):Void {
      getURL("http://www.google.com");
      trace("end_cue" + eventObject.info.name);
      trace("end_cue" + eventObject.info.type);
}
intro.swf.addEventListener("cuePoint", listenerObject);

Open in new window



just use this instead...


rp / ZA





import mx.utils.Delegate;
 
// stream_ns is the instance name of your NetStream
 
stream_ns.onStatus = Delegate.create(this, checkStatus);
 
function checkStatus( info:Object ):Void
{
   if (info.code == "NetStream.Buffer.Empty")
   {
      getURL("http://www.google.com");
   }
}

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of s8web
s8web

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks that worked - to the other expert that offered a solution, thanks. But I should have told you I wasn't looking for AS3

the last comment posted was in AS 2.0...  hence the use of the Delegate Class...

which in AS 3.0 is no longer needed...


glad you got somethin workin for ya.




rp / Zone Advisor
I have a similar issue and am a bit of a novice when it comes to flash and flash video. I have the flv files with cue points at the end of them. I want to add action script to these in flash so that it will redirect to a URL as soon as the video is complete.  I am confused about where to add the actionscript.  Do I add it to the video itself (this is not working) or to the next key frame.  I continue to get errors with the code above saying that it has to bee applied to onClipEvent handler.  What am I doing wrong?