Здравствуйте, уважаемые специалисты.
Есть код воспроизведения gif-файла.
Но сам gif-файл - не растягивается под размер окна.
Как должен выглядеть этот код, чтобы gif - вписывался бы по размерам окна с сохранением пропорций ?
(окно может быть любого размера)
Код AS3:
// AS3 GIFPlayer 0.2
// www.bytearray.org
// thibault@bytearray.org
import org.bytearray.gif.player.GIFPlayer;
import org.bytearray.gif.decoder.GIFDecoder;
import org.bytearray.gif.events.GIFPlayerEvent;
import org.bytearray.gif.events.FileTypeEvent;
import org.bytearray.gif.events.FrameEvent;
import org.bytearray.gif.events.TimeoutEvent;
var myUpload:FileReference = new FileReference();
// we create the GIFPlayer, GIF is played automatically
var myGIFPlayer:GIFPlayer = new GIFPlayer();
// we show it
addChild ( myGIFPlayer );
// listen for the IOErrorEvent.IO_ERROR event, dispatched when the GIF fails to load
myGIFPlayer.addEventListener ( IOErrorEvent.IO_ERROR, onIOError );
// listen for the GIFPlayerEvent.COMPLETE event, dispatched when GIF is loaded
myGIFPlayer.addEventListener ( GIFPlayerEvent.COMPLETE, onCompleteGIFLoad );
// listen for the FrameEvent.FRAME_RENDERED event, dispatched when a GIF frame is rendered on screen
myGIFPlayer.addEventListener ( FrameEvent.FRAME_RENDERED, onFrameRendered );
// listen for the FileTypeEvent.INVALID event, dispatched when an invalid file is loaded
myGIFPlayer.addEventListener ( FileTypeEvent.INVALID, onInvalidFileLoaded );
// listen timeout
myGIFPlayer.addEventListener ( TimeoutEvent.TIME_OUT, onTimeoutError );
// we load a GIF
myGIFPlayer.load ( new URLRequest ("diego.gif") );
upload_btn.addEventListener( MouseEvent.CLICK, onClick );
myUpload.addEventListener( Event.COMPLETE, onComplete );
myUpload.addEventListener( Event.SELECT, onSelect );
btn_stop.addEventListener ( MouseEvent.CLICK, onStopClick );
btn_play.addEventListener ( MouseEvent.CLICK, onPlayClick );
btn_stop_random.addEventListener ( MouseEvent.CLICK, onRandomStopClick );
btn_play_random.addEventListener ( MouseEvent.CLICK, onRandomPlayClick );
infos_txt.text = " Loading GIF file...";
function onPlayClick ( pEvt:MouseEvent ):void
{
myGIFPlayer.play();
}
function onRandomStopClick ( pEvt:MouseEvent ):void
{
var rand:int = Math.ceil ( Math.random()*myGIFPlayer.totalFrames );
myGIFPlayer.gotoAndStop ( rand );
}
function onRandomPlayClick ( pEvt:MouseEvent ):void
{
var rand:int = Math.ceil ( Math.random()*myGIFPlayer.totalFrames );
myGIFPlayer.gotoAndPlay ( rand );
}
function onStopClick ( pEvt:MouseEvent ):void
{
myGIFPlayer.stop();
}
function onSelect ( pEvt:Event ):void
{
var myRequest:URLRequest = new URLRequest ("http://www.bytearray.org/wp-content/projects/gifplayer/upload.php");
var myVars:URLVariables = new URLVariables ();
myVars.fileName = pEvt.target.name;
myRequest.method = URLRequestMethod.POST;
myRequest.data = myVars;
pEvt.target.upload ( myRequest );
infos_txt.text = " Please wait, loading GIF file...";
upload_btn.enabled = false;
}
function onComplete ( pEvt:Event ):void
{
var fileName:String = pEvt.target.name;
myGIFPlayer.load ( new URLRequest ("http://www.bytearray.org/wp-content/projects/gifplayer/imgs/"+fileName) );
infos_txt.text = " parsing GIF file...";
upload_btn.enabled = true;
}
function onTimeoutError ( pEvt:TimeoutEvent ):void
{
infos_txt.htmlText = "<font color='#990000'>Sorry, TIME_OUT error, please try another GIF file</font>";
}
function onInvalidFileLoaded ( pEvt:FileTypeEvent ):void
{
infos_txt.htmlText = "Invalid file loaded !";
}
function onIOError ( pEvt:IOErrorEvent ):void
{
infos_txt.htmlText = "<font color='#990000'>Sorry there was an error loading the GIF file</font>";
}
function onCompleteGIFLoad ( pEvt:GIFPlayerEvent ):void
{
var FrameRect:Rectangle = pEvt.rect;
myGIFPlayer.x = ( stage.stageWidth - FrameRect.width ) /2;
myGIFPlayer.y = ( stage.stageHeight - FrameRect.height ) /2;
infos_txt.htmlText = "Total Frames : " + String ( myGIFPlayer.totalFrames ) + "<br>";
infos_txt.htmlText += "Loop : " + String ( myGIFPlayer.loopCount ) + "<br>";
}
function onFrameRendered ( pEvt:FrameEvent ):void
{
render_txt.htmlText = String ( "Frame Width : " + pEvt.frame.bitmapData.width + " px<br>Frame Height : " + pEvt.frame.bitmapData.height + " px");
render_txt.htmlText += String ( "Frame delay : " + pEvt.target.getDelay ( pEvt.target.currentFrame ) );
render_txt.htmlText += String ( "Current frame : " + pEvt.target.currentFrame );
}
var imageFilter:FileFilter = new FileFilter("Image Files (*.gif)", "*.gif");
function onClick ( MouseEvent:Event ):void
{
myUpload.browse(new Array(imageFilter));
}