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

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

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

Регистрация: Jul 2010
Сообщений: 3
По умолчанию Проблемы с отображением

Код AS3:
package 
{
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.display.LoaderInfo;
	import flash.display.Loader;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.net.URLRequest;
 
	public class Main extends Sprite 
	{
		private var _game_width:int = 800;
		private var _game_height:int = 600;
		private var _loader:Loader;
		private var _url_request:URLRequest;
		private var _progress_bar:Shape;
		private var _progress_bar_line:Sprite;
		private var _movie:Sprite;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
 
			//Защита от ресайза
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			//Загружаем игрушку
			_url_request = new URLRequest("адрес swf");
			_loader = new Loader();
			_loader.load(_url_request);
			_loader.contentLoaderInfo.addEventListener(Event.OPEN, onOpenLoader);
			_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressLoader);
			_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
		}
 
		//отрисовываем контейнер прогресс-бара
		private function onOpenLoader(evt:Event):void {
			_progress_bar = new Shape();
			_progress_bar.graphics.beginFill(0x00ffff, 1);
			_progress_bar.graphics.drawRect((game_width-300)/2, (game_height-50)/2, 300, 50);
			_progress_bar.graphics.endFill();
			addChild(_progress_bar);
		}
 
		//отрисовываем прогресс-бар
		private function onProgressLoader(evt:Event):void {
			if (_progress_bar_line != null) {
				removeChild(_progress_bar_line);
			}
			_progress_bar_line = new Sprite();
			_progress_bar_line.graphics.beginFill(0xff00ff, 1);
			_progress_bar_line.graphics.drawRect((game_width - 300) / 2, (game_height - 50) / 2, (300 * _loader.contentLoaderInfo.bytesLoaded / _loader.contentLoaderInfo.bytesTotal), 50);
			_progress_bar_line.graphics.endFill();
			addChild(_progress_bar_line);
		}
 
		//удаляем прогресс-бар, отображаем игрушку, освобождаем ресурсы
		private function onLoaderComplete(evt:Event):void {
			removeChild(_progress_bar);
			removeChild(_progress_bar_line);
			_progress_bar = null;
			_progress_bar_line = null;
			_url_request = null;
			//_loader.width = _game_width;  
			//_loader.height = _game_height;
			_movie = Sprite(_loader.content);
			_loader = null;
			addChildAt(_movie, 0);
		};	
 
 
		//геттеры
		public function get game_width():int 
		{
			return _game_width;
		}
 
		public function get game_height():int 
		{
			return _game_height;
		}
 
	}
 
}
Проблема собственно в функциях
Код AS3:
		//отрисовываем контейнер прогресс-бара
		private function onOpenLoader(evt:Event):void {
			_progress_bar = new Shape();
			_progress_bar.graphics.beginFill(0x00ffff, 1);
			_progress_bar.graphics.drawRect((game_width-300)/2, (game_height-50)/2, 300, 50);
			_progress_bar.graphics.endFill();
			addChild(_progress_bar);
		}
 
		//отрисовываем прогресс-бар
		private function onProgressLoader(evt:Event):void {
			if (_progress_bar_line != null) {
				removeChild(_progress_bar_line);
			}
			_progress_bar_line = new Sprite();
			_progress_bar_line.graphics.beginFill(0xff00ff, 1);
			_progress_bar_line.graphics.drawRect((game_width - 300) / 2, (game_height - 50) / 2, (300 * _loader.contentLoaderInfo.bytesLoaded / _loader.contentLoaderInfo.bytesTotal), 50);
			_progress_bar_line.graphics.endFill();
			addChild(_progress_bar_line);
		}
Мне нужно отрисовать объект а потом изменять его ширину. Не получается - при изменениее ширины
Код AS3:
_progress_bar_line.width += 1
объект вовсе пропадает. Нужно создать объект и изменять его, а не перерисовывать его каждый раз как я это делаю. Хэлпните, если сможете.

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

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

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


 


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


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