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

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

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

Регистрация: Apr 2011
Адрес: Новосибирск
Сообщений: 103
Отправить сообщение для fifa_sibir с помощью ICQ
По умолчанию Эффект трехмерности

Здравствуйте, уважаемые знатоки! Подскажите пожалуйста как вы делаете такую штучку, у меня есть изображение комнаты, которое нужно маленько передвигать влево вправо в зависимости от расположения указателя мыши, как бы псевдо 3д. вот код:

Код AS3:
addEventListener(Event.ENTER_FRAME, enterHandler);
function enterHandler(e:Event):void{
 
	//вправо
	if(mouseX>930&&mouseX<985){
		room.x = room.x - 4;
	}
	if(mouseX>=985&&mouseX<1040){
		room.x = room.x - 5;
	}
	if(mouseX>=1040&&mouseX<1095){
		room.x = room.x - 6;
	}
	if(mouseX>=1095&&mouseX<1150){
		room.x = room.x - 7;
	}
	if(mouseX>=1150&&mouseX<1155){
		room.x = room.x - 8;
	}
	if(mouseX>=1155&&mouseX<1210){
		room.x = room.x - 9;
	}
	if(mouseX>1210){
		room.x = room.x - 10;
	}
 
	//влево
	if(mouseX<350&&mouseX>295){
		room.x = room.x + 4;
	}
	if(mouseX<=295&&mouseX>240){
		room.x = room.x + 5;
	}
	if(mouseX<=240&&mouseX>185){
		room.x = room.x + 6;
	}
	if(mouseX<=185&&mouseX>130){
		room.x = room.x + 7;
	}
	if(mouseX<=130&&mouseX>75){
		room.x = room.x + 8;
	}
	if(mouseX<=75&&mouseX>20){
		room.x = room.x + 9;
	}
	if(mouseX<20){
		room.x = room.x + 10;
	}
}
Не знаю, правильно ли я делаю))) Но кажется не совсем, потому как в моем случае изображение дергается при перемещении. И еще не пойму как сделать так, чтобы перемещение остановилось при достижении края изображения?

Старый 17.07.2012, 12:23
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Эффектом 3д это конечно вряд ли назовешь.
Но такой эффект можно сделать примерно так:
Код AS3:
package  {
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.sampler.getSize;
	/**
	 * ...
	 * @author casey ryan
	 */
	public class Main extends Sprite {
 
 
		[Embed(source = "image/angry_bird.jpg")]
		private var AngryBird:Class;
		private var _bird:Bitmap 	= new AngryBird as Bitmap;
		private var _imageWider:	Number;
		private var _imageHigher:Number;
 
		public function Main() {
			_imageWider = _bird.width - stage.stageWidth; // то, на сколько картинка шире сцены (если картинка изначально больше)
			_imageHigher = _bird.height - stage.stageHeight; 
			_bird.x 	= -(_imageWider / 2); // центрируем картинку
			_bird.y 	= -(_imageHigher / 2);															
			addChild(_bird);
			stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
		}
 
		private function onMouseMove(e:MouseEvent):void {
			e.updateAfterEvent();
			var mXpercent:Number 	= stage.mouseX / stage.stageWidth; // высчитываем относительное положение мыши на сцене, от 0 до 1
			var mYpercent:Number 	= stage.mouseY / stage.stageHeight;
			_bird.x 	= -(mXpercent * _imageWider);	// смещаем картинку
			_bird.y 	= -(mYpercent * _imageHigher);
 
 
		}
	}
}

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

Регистрация: Apr 2011
Адрес: Новосибирск
Сообщений: 103
Отправить сообщение для fifa_sibir с помощью ICQ
caseyryan, то что надо! спасибо большое!

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

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

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


 


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


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