![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 23
|
package { import flash.text.*; import flash.events.*; import flash.ui.*; import flash.utils.Timer; import flash.display.*; public class main_game extends MovieClip { public var manX, manY : int; public var speed = 3; //--------------------------------------- public function main_game() { dude.stop(); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } //---------------------------------------- private function onAddedToStage(event:Event) { this.stage.stageFocusRect = false; stage.focus = this; stage.addEventListener(MouseEvent.CLICK, onClick); } //------------------------- //----------------------------------------------- function onClick(e:MouseEvent) { //нажатие кнопки - запомнили dude.stop(); manX = e.stageX; manY = e.stageY; //запомнила координаты stage.addEventListener(Event.ENTER_FRAME, render); } //-------------------------------------------------- //----------------------------------------------- function render(e:Event) { // //************ var moires1 = [0, 22.6, 66.6, 111.6, 156.6, 202.6, 247.6, 294.6]; var moires2 = [22.5, 66.5, 111.5, 156.5, 202.5, 247.5, 294.5, 340.5]; var radians = - Math.atan2(dude.y-manY, dude.x-manX); var degrees = radians*180/Math.PI+180; //trace (degrees); var angle = 1; var destX, destY :int; var a: String; for (var i=0; i<=moires1.length; ++i) { if (degrees>=moires1[i] && degrees<=moires2[i]) {angle = i} else if (degrees>340.5 && degrees<=360) {angle = 0 } } var j = 0; var offsetX = manX - dude.x; var offsetY = manY - dude.y; if (offsetX > 0) {destX = 1} else {destX = -1} //направление + или - if (offsetY > 0) {destY = 1} else {destY = -1} // graphics.lineStyle(0, 0); graphics.moveTo(dude.x, dude.y); graphics.lineTo(manX, manY); // /*trace("____________") trace("x=",dude.x, "mx=",manX, "offsetX = ", offsetX); trace("y=",dude.y, "mx=",manY, "offsety = ", offsetY); trace("____________")*/ a = angle + "1"; //trace(a); if (Math.abs(offsetX) > speed) { dude.gotoAndPlay(a); dude.play(); /*if (dude.currentLabel.charAt(1) == "7") { dude.gotoAndPlay(a); dude.play(); }*/ //trace(dude.currentLabel); dude.x = dude.x + speed * destX; //переместили offsetX = offsetX - speed * destX; } if (Math.abs(offsetY)> speed) { dude.play(); dude.y = dude.y + speed * destY; offsetY = offsetY - speed * destY; } //stage.removeEventListener(Event.ENTER_FRAME, render); } //-------------------------------------------------- } } Вот весь класс, он один |
|
|||||
|
Цитата:
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 23
|
Точнее, он сначала доводит до нужной точки персонажа, а потом уже запускает его анимацию
|
|
|||||
|
стервочка (я мужик)
|
Psycho Tiger, и как вы переопределением свойства превратите его в метод?
|
|
|||||
|
Пора брать отпуск мне, да, никак. А так хочется перегрузку =(
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 23
|
и все же, может, поможете? (
|
|
|||||
|
envy, у вас проблема в том что человечек не хочет на нужный кадр вставать, верно?
Вам что нужно, чтобы по клику человечек что сделал? Встал на своей временной шкале на нужный кадр из 360 или что? В первом посте у вас проблема была в том, что вы currentFrame писали с большой буквы, как и gotoAndStop. Они пишутся с маленькой буквы, это важно.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 23
|
нет, человечек встает на нужный кадр. И остается на нем, как будто я использовала gotoAndStop().
dude.gotoAndPlay(5); - все вроде правильно написала. Stop() нигде больше нет. |
|
|||||
|
У вас тут дело вот в чем:
render вызывается каждый кадр (потому что повешен на ENTER_FRAME) вызывается там же, т.е. каждый кадр. И в итоге на каждом следующем кадре человечек хочет проиграться, встать на следующий - а вы его бац, и снова и он вновь встаёт на кадр a. То есть он проигрывается, проблема в постоянном вызове gotoAndPlay
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
наследие C#,C++ или Java наверное..хотя сомневаюсь))))
__________________
Отряд Котовскага |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|