![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2014
Сообщений: 30
|
Многоуважаемые Гуру!!! Простите мне моё невежество и просветите скудоумного!!!
) Я во флеше совсем новичок. Нарисовал я значит персонажа (волка) в спокойном состоянии и во время движения, анимировал его значит. Захотел чтобы он у меня забегал, написал я вот такой код:
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. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Для оформления своего кода надо использовать теги [as3][/as3]
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Sep 2010
Адрес: Moscow
Сообщений: 473
|
запихиваешь в спрайт два мувиклипа: один состояния покоя,другой состояние ходьбы.
и потом как нибудь так менять эти состояния |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
В примере я заменил волка на квадраты.
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; } } } |
|
|||||
|
Если смена анимации планируется подстановкой нужных мувиклипов, то лучше сделать addChild.
А теперь добавьте к этому волку ещё 10 анимаций и представьте сколько кода нужно будет для того, чтобы сменить анимацию на нужную. Перебирать мувики и всем ставить visible=false? Это лишнее. Намного проще просто удалить один мувик и положить на его место другой. |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
samana Спасибо!
|
|
|||||
|
Регистрация: Feb 2014
Сообщений: 30
|
Понимаете волк у меня анимирован, когда он стоит он моргает, головой и хвостом вертит, ну а когда идёт ноги шагают, и вот я что то не соображу как это можно спрайтами сделать.
|
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Спрайтами Вам и не нужно, это я ими Вашего волка выразил. У Вас состояния волка, это разные MovieClip или все в одном?
|
|
|||||
|
Регистрация: Feb 2014
Сообщений: 30
|
1 клип стоит
2 шагает |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Уберите из кода спрайты и добавляйте в массив клипы.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|