Issue #428 flash player window resized to the size of the loaded SWF, scalemode is configurable

This commit is contained in:
Honfika
2013-12-24 15:08:55 +01:00
parent 32c4470a1b
commit e6231f2d2e
4 changed files with 35 additions and 10 deletions
+22 -10
View File
@@ -37,13 +37,16 @@ end;
procedure TfrmMain.FormCreate(Sender: TObject);
const
exeSize = 469504;
exeSize = 470016;
var
stream: TFileStream;
buffer: array of Byte;
tempFile: array[0..MAX_PATH - 1] of Char;
tempPath: array[0..MAX_PATH - 1] of Char;
flashVarData : TVarData;
width: Integer;
height: Integer;
scaleMode: Byte;
begin
flaPreview := TMySWF.Create(frmMain);
flaPreview.Parent := frmMain;
@@ -54,16 +57,25 @@ begin
raise Exception.Create(
'GetTempFileName API failed. ' + SysErrorMessage(GetLastError)
);
stream := TFileStream.Create(ParamStr(0), fmOpenRead);
stream.Seek(exeSize, soBeginning);
SetLength(buffer, stream.Size - exeSize);
try
stream.Read(buffer[0], Length(buffer));
finally
stream.Free;
stream := TFileStream.Create(ParamStr(0), fmOpenRead);
stream.Seek(exeSize, soBeginning);
stream.Read(width, 4);
stream.Read(height, 4);
stream.Read(scaleMode, 1);
SetLength(buffer, stream.Size - exeSize);
try
stream.Read(buffer[0], Length(buffer));
finally
stream.Free;
end;
except
width := 12800;
height := 9600;
scaleMode := 3;
end;
stream := TFileStream.Create(ParamStr(0), fmOpenRead);
stream.Seek(exeSize, soBeginning);
ClientWidth := width div 20;
ClientHeight := height div 20;
stream := TFileStream.Create(tempFile, fmOpenWrite);
try
stream.Write(buffer[0], Length(buffer));
@@ -71,7 +83,7 @@ begin
stream.Free;
end;
flaPreview.Movie := tempFile;
flaPreview.ScaleMode := 3;
flaPreview.ScaleMode := scaleMode;
end;
procedure TfrmMain.FormResize(Sender: TObject);