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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.07.2010, 16:44
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 11  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Цитата:
Сообщение от Aloran Посмотреть сообщение
ищите ошибку тут
Код AS1/AS2:
private var _stage;
скорее всего там нет ошибки, без этой переменной то же самое........

Добавлено через 6 минут
Цитата:
Сообщение от Aloran Посмотреть сообщение
тьфу ты блин))) нельзя добавлять на экран объекты которых нет)) Т.е. вы должны _imgLoader подписать на событие COMPLITE и в обработчике оного уже addChild()
вот сделал как вы сказали, но никакого сглаживания, не происходит с картинкой
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.display.Bitmap;
	import flash.display.Stage;
	import flash.display.Loader;
	import flash.net.URLRequest;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
	public class Main extends Sprite
	{
		private var _stage;
		private var _imgLoader:Loader;
		private var _bitmap:Bitmap;
 
		public function Main():void
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}		
		private function init (evt:Event=null)
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			_stage=stage;
			_imgLoader=new Loader();
			_imgLoader.load(new URLRequest("icon.jpg"));
			_imgLoader.addEventListener(Event.COMPLETE, theSmoothing);
			function theSmoothing(evt:Event):void
			{
				Bitmap(_imgLoader.content).smoothing=true;
			}			
			addChild(_imgLoader);
 
			stage.addEventListener(Event.ENTER_FRAME, moveImg);			
		}
		private function moveImg(evt:Event):void
		{
			_imgLoader.x=mouseX;
			_imgLoader.y=mouseY;
			_imgLoader.rotation++;
		}
	}
}

Старый 13.07.2010, 16:51
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 12  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
Код AS3:
			_imgLoader.addEventListener(Event.COMPLETE, theSmoothing);
			function theSmoothing(evt:Event):void
			{
				Bitmap(_imgLoader.content).smoothing=true;
			}			
			addChild(_imgLoader);
Рассказываю, как это будет работать:
- на _imgLoader вешается слушатель,
- определяется функция-обработчик theSmoothing,
- _imgLoader пустой, без контента, добавляется на сцену,
- после загрузки картинки, вызывается обработчик theSmoothing,
- в theSmoothing создаётся какой-то Bitmap, ссылку на который никто нигде не сохраняет,
- Bitmap'у устанавливается сглаживание,
- Bitmap убивается, потому что никому не нужен.

Я вам в примере как написал? Не Loader цеплять на сцену нужно, а Bitmap.

Цитата:
Сообщение от Aloran Посмотреть сообщение
тьфу ты блин))) нельзя добавлять на экран объекты которых нет)) Т.е. вы должны _imgLoader подписать на событие COMPLITE и в обработчике оного уже addChild()
Ничего подобного. Экземпляры класса Loader замечательно добавляются и до загрузки контента. Как наследник DisplayObject'а, Loader спокойно добавляется на сцену через addChild в любое время. Просто он будет без контента. Сам экземпляр-то существует.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого


Последний раз редактировалось Хемуль; 13.07.2010 в 16:55.
Старый 13.07.2010, 16:54
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 13  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
вот ссылочка на архив, гляньте, плз :
http://***********/18522584

Старый 13.07.2010, 17:05
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 14  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 Dr_Bra:
Вы неправильно слушаете события Loader'а по поводу загрузки. Почитайте документацию. Также вы пытались вращать картинку до создания обьекта - потому была ошибка.
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.display.Bitmap;
	import flash.display.Stage;
	import flash.display.Loader;
	import flash.net.URLRequest;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
	public class Main extends Sprite
	{
		private var _stage;
		private var _imgLoader:Loader;
		private var _bitmap:Bitmap;
 
		public function Main():void
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}		
 
		private function init (evt:Event=null)
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			_stage = stage;
			_imgLoader = new Loader();
			_imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, theSmoothing);
			_imgLoader.load(new URLRequest("icon.jpg"));
			function theSmoothing(evt:Event):void
			{
				_bitmap = Bitmap(_imgLoader.content);
				_bitmap.smoothing = true;
				addChild(_bitmap);
				_stage.addEventListener(Event.ENTER_FRAME, moveImg);	
			}			
		}
 
		private function moveImg(evt:Event):void
		{
			_bitmap.x = mouseX;
			_bitmap.y = mouseY;
			_bitmap.rotation++;
		}
	}
}
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 13.07.2010, 17:13
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 15  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Спасибо огромное за пример!

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

Теги
jpg , сглаживание
Опции темы
Опции просмотра

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

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


 


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


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