Solved

Trigger Javascript at end of swf/flash movie

Posted on 2009-05-04
8
1,275 Views
Last Modified: 2013-11-11
I have a swf move in my HTML web page and in the page there is a javascript function call MovieEnd(). Is there a way that I can trigger this javascript function at the end of the movie from within the swf? How would I go about it? Thanks,
0
Comment
Question by:wilcor14
8 Comments
 
LVL 20

Expert Comment

by:ChristoferDutz
Comment Utility
With the Flex-Ajax-Bridge you can call JavaScript functions in the page containing the SWF.
I guess this is no Flex-Feature so I guess this should work with all ActionScript3 solutions.

http://livedocs.adobe.com/flex/3/html/help.html?content=ajaxbridge_1.html
0
 
LVL 12

Expert Comment

by:alien109
Comment Utility
0
 

Author Comment

by:wilcor14
Comment Utility
Great, I think this is what we need.
Also just found out that in the flash file, we have an .FLV movie on the first frame. What we want to do is call the javascript at the end of the FLV movie but how do we know it is done? Thanks again.
0
 
LVL 22

Expert Comment

by:rascalpants
Comment Utility
this all depends on how the FLV is being played...    can you look in the code and see what it being used to play the FLV...  normally something like this...

var theNS:NetStream = new NetStream( theNetConnection );
theNS.play( "streamToPlay" );



to detect if the FLV has ended, you can use a few different methods...  but you will need to setup an event listener and check for the NET_STATUS like the below...



rp / ZA





 

var theNC:NetConnection = new NetConnection();
 

//  put code here to check for NetConnection if you want
 

var theNS:NetStream = new NetStream( theNC );

theNS.addEventListener( NetStatusEvent.NET_STATUS, ns_EventHandler );

 

private function ns_EventHandler( evt:Event ):void

{

  var evtCode:String = evt.info.code;
 

  if( evtCode == "NetStream.Play.Complete" )

  {

    trace(" call ExternalInterface here ");

  }
 

}

Open in new window

0
How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

 

Author Comment

by:wilcor14
Comment Utility
rascalpants,
Thank you so much for your time. Just spoke with my developer and he gave me the code below this message. Based on what he gave me, how could we call a javascript funcation in the html page that the swf is embeded in? Would something like this work:
var url:URLRequest = new URLRequest(javascript:myfunction(););
navigateToURL(url);
 

import fl.video.VideoEvent;

flvp.addEventListener(VideoEvent.STOPPED_STATE_ENTERED, onVideoStopped);

function onVideoStopped(evt:VideoEvent):void

{

    var url:URLRequest = new URLRequest("http://google.com");

    navigateToURL(url, "_parent");

}

Open in new window

0
 
LVL 22

Expert Comment

by:rascalpants
Comment Utility

others have posted a link to some reference information above, but here is the code if you need it...


you first do a check to see if it is available... which means you are in a Browser, instead of the IDE...  then you need to pass the variable to the javascript function...


if you need the round trip example, you can see this question...  

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



rp / ZA


 

import fl.video.VideoEvent;
 

//  added rp

import flash.external.ExternalInterface;

var extIntAvailable:Boolean = ExternalInterface.available;

var theVariable:String = "rascalpants rocks!";
 
 

flvp.addEventListener(VideoEvent.STOPPED_STATE_ENTERED, onVideoStopped);

function onVideoStopped(evt:VideoEvent):void

{

    // added rp

    if( extIntAvailable )

    {

       ExternalInterface.call( "functionNameInJavaScript", theVariable );

    }

}

Open in new window

0
 
LVL 22

Accepted Solution

by:
rascalpants earned 500 total points
Comment Utility


^ bump ^
 

please come back and finish up this question...


thanks,

rp / Zone Advisor
0
 

Author Closing Comment

by:wilcor14
Comment Utility
My apologies for not getting back to you sooner. I was waiting on my developer to make sure it was all good and your code was perfect and works. Thanks so much. You saved me a ton in hours of research and money in not having to pay my developer to research it. Thanks.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

Problem to be resolved in this article Currently, development of website and web application can be done without writing thousands of lines of programming code by hand. Description This can be done through by using a open source framework such …
Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
This tutorial demonstrates how to identify and create boundary or building outlines in Google Maps. In this example, I outline the boundaries of an enclosed skatepark within a community park.  Login to your Google Account, then  Google for "Google M…
This tutorial walks through the best practices in adding a local business to Google Maps including how to properly search for duplicates, marker placement, and inputing business details. Login to your Google Account, then search for "Google Mapmaker…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now