Favor Composition | 55
Example 1-51. RecordMedia.as
package
{
//Interface for recording media
interface RecordMedia
{
function recordNow( ):void;
}
}
Example 1-52. RecordVideo.as
package
{
//Concrete RecordMedia: Video
class RecordVideo implements RecordMedia
{
public function recordNow( ):void
{
trace("I'm recording this tornado live! Holy....crackle, crackle\n");
}
}
}
Example 1-53. RecordAudio.as
package
{
//Concrete RecordMedia: Audio
class RecordAudio implements RecordMedia
{
public function recordNow( ):void
{
trace("Rats! I can't record MP3 by itself.\n");
}
}
}
Example 1-54. TestMedia.as
package
{
import flash.display.Sprite;
public class TestMedia extends Sprite
{
public function TestMedia( )
{
var delVideo:Media=new VideoFlash( );
delVideo.doPlayMedia( );
delVideo.doRecordMedia( );