I posted this in response to a forum question the other day and thought I’d share the code here.
The following example shows you how you can clear a VideoDisplay control’s content using the videoPlayer property in the mx_internal namespace.
Full code after the jump.
Option 1: Call the videoDisplay.mx_internal::videoPlayer.clear() method directly from our MXML file:
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/01/15/clearing-the-video-on-a-flex-videodisplay-control/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:VideoDisplay id="videoDisplay"
source="http://www.helpexamples.com/flash/video/cuepoints.flv" />
<mx:Button label="pause"
click="videoDisplay.pause();" />
<mx:Button label="clear"
click="videoDisplay.mx_internal::videoPlayer.clear();" />
</mx:Application>
View source is enabled in the following example.
Option 2: Extend the VideoDisplay class in ActionScript, and add a custom clear() method which calls the mx_internal::videoPlayer.clear() method:
package {
import mx.controls.VideoDisplay;
import mx.core.mx_internal;
public class MyVideoDisplay extends VideoDisplay {
public function MyVideoDisplay() {
super();
}
public function clear():void {
pause();
mx_internal::videoPlayer.clear();
}
}
}
Then, in our MXML file, we simply add our MyVideoDisplay custom component and call our clear() method directly:
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/01/15/clearing-the-video-on-a-flex-videodisplay-control/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:custom="*"
layout="vertical">
<custom:MyVideoDisplay id="myVideoDisplay"
source="http://www.helpexamples.com/flash/video/cuepoints.flv" />
<mx:Button label="clear"
click="myVideoDisplay.clear();" />
</mx:Application>
Option 3: Create a custom component in MXML that extends the VideoDisplay control. Again, we add our own custom clear() method which calls the mx_internal::videoPlayer.clear() method:
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/01/15/clearing-the-video-on-a-flex-videodisplay-control/ -->
<mx:VideoDisplay xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.core.mx_internal;
public function clear():void {
pause();
mx_internal::videoPlayer.clear();
}
]]>
</mx:Script>
</mx:VideoDisplay>





Why don’t you have to use
use namespace mx_internal;
or better yet, when do I have to use that statement.
thanks for this tutorial btw. i was trying to clear a videodisplay yesterday.
adam,
Excellent tip! I totally forgot about the
use namespacesolution. It really could apply to any of the solutions above, but since pption 1 is probably the most easily copy-paste-able:Peter
very helped thank you
great video display control tips.
I may apply this tips on one of my site project.
thanks