OnLoadExternalResource

Syntax

Delphi

type TFlashPlayerControlOnLoadExternalResource = procedure(
  ASender: TObject;
  const URL: WideString;
  Stream: TStream) of object;
 
property OnLoadExternalResource: TFlashPlayerControlOnLoadExternalResource;

C++Builder

typedef void __fastcall (__closure *TFlashPlayerControlOnLoadExternalResource)(
  System::TObject* ASender,
  const System::WideString URL,
  Classes::TStream* Stream);

Description

The OnLoadExternalResource event is triggered when a Flash movie loaded from a stream attempts to load an external resource (such as XML, JPEG, or MP3) using a relative path.

This event is raised only for movies loaded from a TStream. For other cases, use SetGlobalOnLoadExternalResourceHandler.

Note: Starting from version 3.1, the URL parameter type was changed to WideString (previously AnsiString/string).

Example

A Flash movie requests an image with the following ActionScript code:

loadMovie("images/external_image.jpg", "square");

You can provide the content of this image by handling the OnLoadExternalResource event.

Delphi Example

procedure TForm1.FlashPlayerControl1LoadExternalResource(
  ASender: TObject; 
  const URL: WideString; 
  Stream: TStream
);
var
  ResourceStream: TResourceStream;
begin
  if URL = 'images/external_image.jpg' then
  begin
    ResourceStream := TResourceStream.Create(0, 'some_image', 'IMAGE');
    ResourceStream.SaveToStream(Stream);
    ResourceStream.Free;
  end;
end;

C++Builder Example

void __fastcall TMainForm::FlashPlayerControl1LoadExternalResource(
  TObject *ASender, 
  const WideString URL, 
  TStream *Stream
) {
  if (URL == WideString("images/external_image.jpg")) {
    TResourceStream* ResourceStream = new TResourceStream(0, "image1", "IMAGE");
    ResourceStream->SaveToStream(Stream);
    delete ResourceStream;
  }
}