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

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

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

Регистрация: May 2008
Сообщений: 4
По умолчанию Трехмерное искажение картинки при z=0

Разбираясь с одной 3d-фотогалереей, заметил такую штуку, что загружаемые фотки при отображении на экране в своём полном размере и без заданных 3d-искажений, всё же оказываются слегка "смазанными", словно к ним применили лёгкий blur. Сделал тест для одной лишь загружаемой картинки:

Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Loader;
	import flash.net.URLRequest;
 
	public class Main extends Sprite 
	{
		private var pictureLoader:Loader;
		private var scene:Sprite;
		private var picture:Sprite;
		private var bmap:Bitmap;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
 
			pictureLoader = new Loader();
			pictureLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onPicture);
			pictureLoader.load(new URLRequest("test_img.jpg"));
		}
 
		private function onPicture(e:Event):void {
			bmap = new Bitmap((e.target.content as Bitmap).bitmapData);
			buildAlbum();
		}
 
		private function buildAlbum():void {
			scene = new Sprite();
			scene.x = Math.round(stage.stageWidth / 2);
			scene.y = Math.round(stage.stageHeight / 2);
			addChild(scene);
 
			picture = new Sprite();
			bmap.x = Math.round(bmap.bitmapData.width / -2);
			bmap.y = Math.round(bmap.bitmapData.height / -2);
			picture.addChild(bmap);
 
			scene.addChild(picture);
//			picture.z = 0;
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
		}
	}
}
Если раскомментировать строку
Код AS3:
picture.z = 0;
- будет смаз картинки; запускал во Flash и FD, результат одинаковый. Может быть, кто знает, в чём тут дело?

В хелпе сказано:
Цитата:
При установке свойства z экранного объекта на значение, отличное от значения по умолчанию, равного 0, автоматически создается соответствующий объект Matrix3D.
Однако, похоже, даже выставление значения по умолчанию приводит к такой теме? (пробовал явно инициализировать нулями rotationX, rotationY, rotationZ - та же история) И даже если создаётся этот объект Matrix3D, то почему при нулевых значениях углов и параметра z, резкость картинки съезжает?

:-)


Последний раз редактировалось seed78; 16.12.2010 в 00:23.
Старый 16.12.2010, 00:39
gr_crd вне форума Посмотреть профиль Отправить личное сообщение для gr_crd Посетить домашнюю страницу gr_crd Найти все сообщения от gr_crd
  № 2  
Ответить с цитированием
gr_crd
 
Аватар для gr_crd

Регистрация: Mar 2009
Адрес: Kazakhstan, Almaty
Сообщений: 121
тут решение http://www.flasher.ru/forum/showthread.php?t=145899
__________________
заткнись и делай

Старый 16.12.2010, 01:50
seed78 вне форума Посмотреть профиль Отправить личное сообщение для seed78 Найти все сообщения от seed78
  № 3  
Ответить с цитированием
seed78

Регистрация: May 2008
Сообщений: 4
Спасибо!

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

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

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


 


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


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