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

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

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

Регистрация: Feb 2014
Сообщений: 30
По умолчанию Движение вперёд назад

Многоуважаемые Гуру!!! Простите мне моё невежество и просветите скудоумного!!! ) Я во флеше совсем новичок. Нарисовал я значит персонажа (волка) в спокойном состоянии и во время движения, анимировал его значит. Захотел чтобы он у меня забегал, написал я вот такой код:
Код AS3:
var speed = 15;  
stage.addEventListener(KeyboardEvent.KEY_DOWN, go);  
function go(e:KeyboardEvent):void {      
if (e.keyCode==Keyboard.LEFT) {           
wolf.x -= speed;       
}       
if (e.keyCode==Keyboard.RIGHT) {           
wolf.x += speed;       
}   
};
Он как бы зашевелился, но в состоянии покоя(тоесть просто елозит по сцене вперёд назад) а хочется чтобы при нажатии клавиш появлялся символ вокла во время движения. Буду весьма признателен если подскажите или направите на материал описывающий подобные телодвижения


Последний раз редактировалось tihomir; 25.02.2014 в 12:53.
Старый 25.02.2014, 12:36
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Для оформления своего кода надо использовать теги [as3][/as3]
__________________
Reality.getBounds(this);

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

Регистрация: Sep 2010
Адрес: Moscow
Сообщений: 473
запихиваешь в спрайт два мувиклипа: один состояния покоя,другой состояние ходьбы.
и потом как нибудь так менять эти состояния
Код AS3:
parentSprite.getChildByName("walkMc").visible = true;
parentSprite.getChildByName("stayMc").visible = false;

Старый 25.02.2014, 14:12
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 4  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
В примере я заменил волка на квадраты.
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
 
	public class AnimationTest extends Sprite 
	{
		private var _isMotionState:Boolean;
		private var _isDefaultState:Boolean;
		private var _wolfs:Array;
		private const WOLF_DEFAULT_STATE:int = 0;
		private const WOLF_MOTION_STATE:int = 1;
		public function AnimationTest() 
		{
			_wolfs = [];
 
			var wolfDefaultState:Sprite = new Sprite();
			wolfDefaultState.graphics.beginFill(0xA83824);
			wolfDefaultState.graphics.drawRect(0, 0, 30, 30);
			wolfDefaultState.graphics.endFill();
			wolfDefaultState.x = 200;
			wolfDefaultState.y = 200;
			this.addChild(wolfDefaultState);
 
			var wolfMotionState:Sprite = new Sprite();
			wolfMotionState.graphics.beginFill(0x4FAA22);
			wolfMotionState.graphics.drawRect(0, 0, 30, 30);
			wolfMotionState.graphics.endFill();
			wolfMotionState.x = 200;
			wolfMotionState.y = 200;
			wolfMotionState.visible = false;
			this.addChild(wolfMotionState);
 
			_wolfs.push(wolfDefaultState, wolfMotionState);
 
			stage.addEventListener(KeyboardEvent.KEY_DOWN, stage_keyDownHandler);
			stage.addEventListener(KeyboardEvent.KEY_UP, stage_keyUpHandler);
		}
 
		private function stage_keyUpHandler(event:KeyboardEvent):void 
		{
			_isDefaultState = true;
			if (_isMotionState)_isMotionState = false;
			_wolfs[WOLF_DEFAULT_STATE].visible = true;
			_wolfs[WOLF_MOTION_STATE].visible = false;
		}
 
		private function stage_keyDownHandler(event:KeyboardEvent):void 
		{
			if (_isDefaultState)
			{
				_isDefaultState = false;
				_wolfs[WOLF_DEFAULT_STATE].visible = false;
			}
			_isMotionState = true;
			_wolfs[WOLF_MOTION_STATE].visible = true;
		}
 
	}
 
}
И у меня вопрос по теме - как лучше делать visible или addChild?

Старый 25.02.2014, 14:20
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 5  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
И у меня вопрос по теме - как лучше делать visible или addChild?
Если смена анимации планируется подстановкой нужных мувиклипов, то лучше сделать addChild.
А теперь добавьте к этому волку ещё 10 анимаций и представьте сколько кода нужно будет для того, чтобы сменить анимацию на нужную. Перебирать мувики и всем ставить visible=false? Это лишнее. Намного проще просто удалить один мувик и положить на его место другой.

Старый 25.02.2014, 14:23
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 6  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
samana Спасибо!

Старый 25.02.2014, 14:45
tihomir вне форума Посмотреть профиль Отправить личное сообщение для tihomir Найти все сообщения от tihomir
  № 7  
Ответить с цитированием
tihomir

Регистрация: Feb 2014
Сообщений: 30
Понимаете волк у меня анимирован, когда он стоит он моргает, головой и хвостом вертит, ну а когда идёт ноги шагают, и вот я что то не соображу как это можно спрайтами сделать.

Старый 25.02.2014, 14:53
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 8  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Спрайтами Вам и не нужно, это я ими Вашего волка выразил. У Вас состояния волка, это разные MovieClip или все в одном?

Старый 25.02.2014, 14:59
tihomir вне форума Посмотреть профиль Отправить личное сообщение для tihomir Найти все сообщения от tihomir
  № 9  
Ответить с цитированием
tihomir

Регистрация: Feb 2014
Сообщений: 30
1 клип стоит
2 шагает

Старый 25.02.2014, 15:02
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 10  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Уберите из кода спрайты и добавляйте в массив клипы.

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

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

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


 


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


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