![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 23
|
Задача в том, чтобы сделать покадровую анимацию движения человечка за мышкой. Решила создать мувиклип, и вместила покадрово все позы человечка (изначально были в формате png).
Высчитала угол, смещение, человечек плавно двигается куда надо, но когда стала делать анимацию по кадрам столкнулась с проблемой, что функция CurrentFrame что-то не работает. Возвращает значение Undefined. При этом GotoAndPlay делает goto, а играть не играет. Играет только play. Вызываю функции на EnterFrame, но даже такая конструция : function render(e:Event) { // dude.gotoAndStop(dude.CurrentFrame); trace(dude.CurrentFrame); } Весь инет перерыла, помогите, пожалуйста! |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
а что это за такая функция CurrentFrame ??
|
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
и в чём смысл? просто stop() уже не модно?
не могу понять смысла программы, выкладывайте весь класс полностью чтоли...
__________________
Могу ошибаться... =) |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
"просто stop() уже не модно?"
+5)) |
|
|||||
|
Регистрация: Sep 2009
Адрес: this.x,this.y;
Сообщений: 153
|
Возможно в момент вызова currentFrame(), точка воспроизведения еще не определена. Это можно исправить строкой gotoAndStop(1) сразу после появления мувика. Выложи весь код, не стесняйся.
|
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
надо что-то типа такого чтоль?
package { import flash.display.* import flash.events.* public class Main extends Sprite { private var targetX:int; private var targetY:int; public function Main() { super(); var sprite1:Sprite = new Sprite(); var back:Sprite = new Sprite() addChild(back); back.graphics.beginFill(0xF0F0F0); back.graphics.drawRect(0, 0, stage.width, stage.height); back.graphics.endFill() sprite1.graphics.beginFill(0x000000, 1); sprite1.graphics.drawRect(0, 0, 25, 25); sprite1.graphics.endFill() addChild(sprite1); stage.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler); addEventListener(Event.ENTER_FRAME, enterFrameHandler); function enterFrameHandler(event:Event):void { if ((sprite1.x != targetX) || (sprite1.y != targetY)) sprite1.rotation += 1;//тут Вам надо делать что-то для анимации. например unit.nextFrame(); if (sprite1.x > targetX) sprite1.x--; if (sprite1.x < targetX) sprite1.x++; if (sprite1.y > targetY) sprite1.y--; if (sprite1.y < targetY) sprite1.y++; } function moveHandler(event:MouseEvent):void { targetX = event.stageX; targetY = event.stageY; } } } }
__________________
Могу ошибаться... =) |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
kayn, в MovieClip функции currentFrame не существует, и создать ее не получится
|
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
откуда вы взяли что currentFrame - функция? только оговорка у топик стартера. в коде всё правильно, обращается как к свойству а не как к функции.
__________________
Могу ошибаться... =) |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
mickfallout, дак там с большой буковки CurrentFrame прописано у автора...
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|