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

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

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

Регистрация: Oct 2014
Сообщений: 2
По умолчанию AS3 перемещение объекта вверж при клике, при повторном клике вернуть в исходную точку

Доброго времени суток!
Делаю небольшое приложение, столкнулся с проблемой. При нажатии на квадратик, он поднимается выше по оси y, но как сделать чтобы квадратики ещё и выравнивались по горизонтали вряд? Например нажал на 4 и 2 квадрат и они выровнялись по центру? А также как можно реализовать последующее возвращение в исходное начало при повторном клике по квадрату. Одним словом, как можно запомнить начальные координаты всех объектов? Прописывать вручную не подойдёт, т.к. объекты будут создаваться динамически.
Прошу подсказать, как подобное можно реализовать?
кусок кода такой:

Код AS3:
var koordinataX = 50;
var koordinataY = 300;
var massLetters:Array = new Array();
 
for (var i:int = 0; i<10; i++){
var letters:Letters = new Letters();
letters.x = koordinataX;
koordinataX += 45;
letters.y = koordinataY;
massLetters.push(letters);
addChild(massLetters[i]);
massLetters[i].addEventListener(MouseEvent.CLICK, onClick);
}
 
function onClick(event:Event){
	trace("Нажали, его имя: "+event.target.name);
	trace ("Координата по оси Y: "+event.target.x+" А это координата по оси Y: "+event.target.y)
	event.target.y -= 100;
	}

Старый 28.10.2014, 14:06
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 2  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Могу показаться навязчивым, но прежде чем делать игры и приложения, я бы посоветовал Вам прочесть книги по as3,
того же Колина Мука, чтобы понять классы. Вам станет намного легче и помощи будет больше, так как я не уверен,
что на этом форуме есть люди, которые пишут в кадрах.
Если бы Вы писали в классах, то я смог бы, хотя бы, немного теоретически рассказать, как бы сделал я.

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

Регистрация: Jul 2009
Сообщений: 149
Заведите в классе LEtters дополнительные поля запоминающие начальное положение и наличие смещения
Код AS3:
	public class Letters extends Sprite 
	{
		public var startPosition:Point;
 
		public var isOffset:Boolean = false;
 
		public function Letters(position:Point) 
		{
			this.startPosition = position;
		}
 
	}
Код AS3:
	var koordinataX:Number = 50;
	var koordinataY:Number = 300;
	var massLetters:Array = new Array();
 
	for (var i:int = 0; i < 10; i++)
	{
		var letter:Letters = new Letters(new Point(koordinataX, koordinataY));;
		letter.x = koordinataX;
		letter.y = koordinataY;
		koordinataX += 45;
		massLetters.push(letter);
		addChild(letter);
		letter.addEventListener(MouseEvent.CLICK, onClick);
	}
        private function onClick(e:MouseEvent):void 
	{
		var letter:Letters = e.currentTarget as Letters;
 
		if (letter.isOffset)
		{
			letter.x = letter.startPosition.x;
			letter.y = letter.startPosition.y;
		}else 
		{
			letter.y -= 100;
			//Горизонтальное выравнивание по центру контейнера.
			letter.x = this.width / 2 - letter.width / 2;
		}
		letter.isOffset = !letter.isOffset;
	}

Старый 28.10.2014, 17:52
Bosseron2 вне форума Посмотреть профиль Отправить личное сообщение для Bosseron2 Найти все сообщения от Bosseron2
  № 4  
Ответить с цитированием
Bosseron2

Регистрация: Oct 2014
Сообщений: 2
Цитата:
Сообщение от Gerbert Посмотреть сообщение
Могу показаться навязчивым, но прежде чем делать игры и приложения, я бы посоветовал Вам прочесть книги по as3,
того же Колина Мука, чтобы понять классы. Вам станет намного легче и помощи будет больше, так как я не уверен,
что на этом форуме есть люди, которые пишут в кадрах.
Если бы Вы писали в классах, то я смог бы, хотя бы, немного теоретически рассказать, как бы сделал я.
Да, с классами мне как раз сложнее, чем на кадрах, в ближайшее время и планирую учиться писать на классах.

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

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

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


 


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


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