Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Тригонометрия (http://www.flasher.ru/forum/showthread.php?t=94418)

E.Q. 11.04.2007 19:06

Тригонометрия
 
Где бы почитать про использование тригонометрических функций в программировании? Просто методом тыка приписывать к движению клипов разные синусы немного страшно(вдруг клип разгонится до световой скорости и пробьет корпус монитора???)...

Вопрос дурацкий, но поймите меня правильно, хочется изучить на примерах...

etc 11.04.2007 19:14

В хелпе, например. А улетит — ничего страшного. Синтаксис схож с обычным написанием формул.

E.Q. 11.04.2007 19:56

Да, синтаксис можно посмотреть в хелпе, но хотелось бы практического применения, как, где использовать, и что из этого выйдет... Есть ведь уже почти шаблонные приемы, которыми никого не удивишь, но зато очень приятные глазу. Вот про них бы и почитать...

etc 11.04.2007 19:57

Так тригонометрия или эффекты? Наиболее часто используемое — различные твины.

E.Q. 11.04.2007 20:08

Да, наверно всетаки эффекты. Неправильно вопрос поставил. Много раз видел эффект "резиново перетаскиваемый объект", как кнопки на mjau-mjau. Посмотрел исходник, поиграл с переменными. Но хотелось бы понять все это, а не просто копипастить код из флешки во флешку.

etc 11.04.2007 20:31

Обычный эффект пружины при отпускании:

Код:

xstep = 0;
newx = 200;
onEnterFrame = function() {
  xstep += (newx-mc._x)*0.1; // ускорение
  xstep *= 0.8; // трение, оно же затухание
  mc._x += xstep; // движемся
}


iNils 11.04.2007 20:45

Можно просто поиграться, эффектов выйдет море
Код:

import flash.display.BitmapData;
import flash.geom.*;
var __cx:Number = 0;
var __ca:Number = 1;
var __cb:Number = 1;
var __bmp:BitmapData = null;
var __dx:Number = 100;
var __dy:Number = 100;
var __dr:Number = 50;
__bmp = new BitmapData (__dx * 4, __dy * 2, false, 0xFFFFFF);
this.attachBitmap (__bmp, 0);
setInterval(this, "calcPoint", 1);
function calcPoint ():Void {
        var multi:Number = 1;
        var multiAlpha:Number = 1;
        var offset:Number = 1;
        var offsetAlpha:Number = 0;
        var ct:ColorTransform = new ColorTransform (multi, multi, multi, multiAlpha, offset, offset, offset, offsetAlpha);
        __bmp.colorTransform (__bmp.rectangle, ct);
        __cx += 1;
        if (__cx >= 360 * __ca) {
                __cx -= 360 * __ca;
                __ca++;
        }
        __cb += __ca;
        var a:Number = __cx * (Math.PI / 180);
        var b:Number = __ca * (Math.PI / 180);
        var x:Number = __dr * Math.cos (a / __ca);
        var y:Number = __dr * Math.sin (__cb * __ca);
        setPoint (x, y, 0x0000FF, 1);
        y = __dr * Math.sin (__cb) * Math.cos (a);
        setPoint (x, y, 0x000000, 2);
        y = __dr * Math.sin (a);
        setPoint (x, y, 0xFF0000, 3);
}
function setPoint (x:Number, y:Number, clr:Number, offset:Number):Void {
        __bmp.setPixel32 (x + __dx * offset, y + __dy, clr);
}

Смотреть пару минут :)


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

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