Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.10.2017, 08:47
odeon16 вне форума Посмотреть профиль Отправить личное сообщение для odeon16 Найти все сообщения от odeon16
  № 1  
Ответить с цитированием
odeon16

Регистрация: Sep 2017
Сообщений: 21
По умолчанию Воспроизведение gif с вписыванием под размеры окна

Здравствуйте, уважаемые специалисты.

Есть код воспроизведения 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));
 
}
Вложения
Тип файла: rar GIFPlayer.rar (346.9 Кб, 15 просмотров)

Старый 06.10.2017, 10:54
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
тыц

Старый 06.10.2017, 11:56
odeon16 вне форума Посмотреть профиль Отправить личное сообщение для odeon16 Найти все сообщения от odeon16
  № 3  
Ответить с цитированием
odeon16

Регистрация: Sep 2017
Сообщений: 21
undefined,
А куда - в моем коде надо добавить ваш код ?

Старый 06.10.2017, 12:30
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 4  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
никуда,надо понять как он работает и сделать по аналогии у себя.

Добавлено через 4 часа 21 минуту
Будут вопросы - задавай, а просьбы в духе "сделайте мне красиво" принято оформлять тут

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 06:33.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.