Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   "программно" нарисовать внутренний png файл (http://www.flasher.ru/forum/showthread.php?t=126815)

forhaxed 28.06.2009 00:30

"программно" нарисовать внутренний png файл
 
в общем дали мне делать проект, послезавтро сдаю, как всегда спотхватился в последний момент =(
должен быть проект на Adobe Flash (CS3/CS4), желательно cs3. с использованием as3 (Action Script 3), есть пара png файлов, 4 анимации, движение вверх, движение вниз, движение вправо, движение влево. я не знаю как это правильно реализовать. файлы из вне - запрещенны. =( т.е. нужно сделать 2 функций. animPlay(direction:number) и animStop() который соотвественно будут проигрывать анимации. и самая главная сложность: все нужно написать програмно... поделитесь мыслями. flash'a фактически не знаю.

Lou 28.06.2009 00:48

Господи, так зачем же вы за это брались?

AL.exe 28.06.2009 05:50

Заказать в вакансиях проект.

Вообще говоря, из того, что Вы написали, я почти ничего не понял. Дайте больше информации, тогда, вероятно, что Вам помогут.

willis83 28.06.2009 06:26

а теперь успокойтесь и всё по порядку...что, куда и зачем. То что вы описали, написать программно действительно самая главная сложность

forhaxed 28.06.2009 12:41

например, есть один movieclip, у которого есть 4 анимации - движение вверх,вниз,влево,вправо. и программно нужно создать этот movieclip и контролировать анимации с помощью animStop, animPlay(direction:number)

MrPoma 28.06.2009 15:51

Вложений: 1
Либо это то, что в аттаче, либо я ничего не понял.

forhaxed 29.06.2009 00:58

так, с анимациями я решил, другой вопрос:
как сделать:
есть обьект "obj", (movieclip)
как сделать так что бы obj двигался в точку x,y ?

willis83 29.06.2009 03:48

можете использовать твинер для не равномерного движения, а можете создать сами, например через addEventListener(Event.ENTER_FRAME, doEveryFrame); и в функции doEveryFrame добавлять к координатам мувика x и y необходимые значения, пока они не достигнут нужных вам. Можно ещё через Timer анимацию сделать.

forhaxed 29.06.2009 12:31

твины отпадают, смысл в том: как сделать передвижение обьекта в x,y ?

ramshteks 29.06.2009 12:34

а можно поинтерисоваться почему твины отпадают?

CrazyFlasher 29.06.2009 12:35

Цитата:

твины отпадают
читай про класс Tween или в поиске ищи

forhaxed 29.06.2009 14:22

потому что движение должно быть равномерное, а с помощью твина получится:
если обьект двигается в с позиции 300;300 в 0;0 то он будет двигаться со скоростью y, а если обьект будет двигаться с 300;300 в 250;250 то скорость будет равна x, время этих движений раны (t1=t2), а вот скорость этих передвежений будут разные (x не равно y). в итоге мне нужно что бы обьект например с точки 300;300 двигался в точку 0;0 со скоростью 3px/сек. (например). вот поэтому твины отпадают

RandomUser 29.06.2009 14:31

А вычеслить сколько веремени нужно для перемещения в нужную точку и передавать ее твину слабо?

forhaxed 29.06.2009 14:41

зачем искать сложные пути? нужно сделать Без использования твина!

RandomUser 29.06.2009 14:56

По моему это вы ищите сложные пути... Тогда следуйте совету willis83

BlooDHounD 29.06.2009 15:02

вам шашечки или ехать? вы просили, что бы Вам помогали, а теперь ещё и делать за Вас. Вы сказали, что не разбираетесь в этом, так что не спорте с теми, кто разбирается: возьмите и сделайте как предлагают. Вам же срочно?

forhaxed 29.06.2009 15:51

я просил сделать анимацию обьекта по функциям, путного некто нечего не сказал, но навели на мысль ;) в матиматике я не сильно силен) так что прошу сказать как твинам посчить время?

RandomUser 29.06.2009 16:31

У вас есть текущие координаты объекта, у вас есть координаты куда хотите его переместить. Т.е. у вас есть расстояние. У вас есть скорость перемещения объекта.
Если я правильно помню школьный курс математики (или физики?) время = расстояние делить на скорость.

forhaxed 29.06.2009 23:51

хмм. замечательно:

Код AS1/AS2:

function moveToXY(xpos:Number,ypos:Number):void
{
        var xpos1:Number = this.x;
        var ypos1:Number = this.y;
        var Time:Number = Math.floor(Math.sqrt((xpos1-xpos)*(xpos1-xpos)+(ypos1-ypos)*(ypos1-xpos)));
        trace(Time);
        new Tween(this, "x", null, this.x, xpos, Time, false);
        new Tween(this, "y", null,this.y,ypos,Time,false);
 
}

но иногда трейс говорит: "NaN"
и перемещает обьект в координаты 0;0

что такое NaN и как его решить?

AL.exe 30.06.2009 00:49

По-моему, Вы пытаетесь взять квадратный корень от отрицательного числа. Добавьте Math.abs - это модуль.

"NaN" - Not a Number

BlooDHounD 30.06.2009 01:44

AL.exe, квадрат числа не может быть отрицательным.

ramshteks 30.06.2009 11:51

ну так он говорит что взять квадратный корень ОТ отрицательного числа. Что невозможно.

RandomUser 30.06.2009 11:57

Какие могут быть отрицательные значения если там под корнем сложение квадратов?
Может просто параметры не передаються?
Да и "(ypos1-ypos)*(ypos1-xpos)" наверное имелось в виду "(ypos1-ypos)*(ypos1-ypos)"

BlooDHounD 30.06.2009 12:55

ramshteks, мы разные посты читаем? написано чётко:
Цитата:

Вы пытаетесь взять квадратный корень от отрицательного числа.
там нет отрицательного числа и быть не может.

ramshteks 30.06.2009 13:07

тьфу ты... туплю)

forhaxed 01.07.2009 22:18

и что в итоге делать?

Добавлено через 2 минуты
Сори за мултипостинг,
ошибка крылась в "(ypos1-ypos)*(ypos1-ypos)"
другая проблемма, как узнать angle если есть x1,y1,x2,y2, адекватной формулы я еще не встречал

ramshteks 01.07.2009 22:30

ну как насчте узнать что такое тангенс и арктангенс?


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

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