Listen for my Flash event in Javascript

2019-02-24 11:27发布

问题:

I'm trying to build a basic video player with a playlist using the OVP Player. So far I have figured out how to feed in the new video source using ExternalInterface, but I can not figure out how to listen for the Flash event "EVENT_END_OF_ITEM".

How do I listen for Flash events in Javascript (and thus jQuery)?

OVP has a lot of events defined, but I don't know how to listen for them. For example, here is the EVENT_END_OF_ITEM:

public function endOfItem():void {
     sendEvent(EVENT_END_OF_ITEM);
}

The OVP documentation is non-existent and their support forum is almost as bad.

回答1:

In the Model.as file find add this line in with all the other imports (at the start of the file):

import flash.external.*;

Then in the end event, add this line:

ExternalInterface.call("stopedPlaying");

So that an event would look like this:

        public function endOfItem():void {
            sendEvent(EVENT_END_OF_ITEM);
            // inform JavaScript that the FLV has stopped playing
            ExternalInterface.call("stoppedPlaying");
        }

Then in your the HTML document, add this between SCRIPT tags:

function stoppedPlaying()
{
    // do something when the FLV starts playing
};


回答2:

I think that externalInterface plugin for jQuery will make it relatively easy. If not then there's DOMEx class which looks promising. Code example from DOMEx site:

if (ExternalInterface.available) ExternalInterface.call(javaScript, "Howdy Ya'll");
[...]


回答3:

you can use SWF object project google
http://code.google.com/p/swfobject/

This library gives you the capability to listen events from actionscript to javascript and is very simple to use