JavaScript-приложения — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Как самому выложить сюда скрипт)
(Как самому выложить сюда скрипт)
Строка 174: Строка 174:
  
 
'' Примечание 2. Не используйте точки в названии файла со скриптом - движок сервера не обработает такой файл.
 
'' Примечание 2. Не используйте точки в названии файла со скриптом - движок сервера не обработает такой файл.
 +
 +
'' Примечание 3. Можно оформить весь скрипт в htmlet
  
  
 
[[Category: Программирование]]
 
[[Category: Программирование]]

Версия 19:22, 17 февраля 2014

Случайное блуждание

Это приложение - аналог вот этого flash-приложения, написанный на JavaScript

<addscript src=Random_walk_v1-1/>


Не удается найти HTML-файл Random_walk_TM.html


Не удается найти HTML-файл Random_walk_TM_400x300_1.html
Не удается найти HTML-файл Random_walk_TM_400x300_2.html
Не удается найти HTML-файл Random_walk_TM_400x300_3.html


Текст программы на языке JavaScript (разработчик Цветков Денис): <toggledisplay status=hide showtext="Показать↓" hidetext="Скрыть↑" linkstyle="font-size:default"> Файл "random_walk.js"

// canvas передается аргументом для того, чтобы была возможность запускать скрипт на несколько canvas'ов
function MainRW(canvas) {
    var context = canvas.getContext("2d");

    var start = 0;
    var d, x, y;
    var w = canvas.width;
    var h = canvas.height;

    setInterval(tick, 30);


    function Rand() {
        return Math.floor(3 * Math.random()) - 1;
    }

    function tick() {
        if (start == 0) {
            start = 1;
            d = 10;
            x = w / 2;
            y = h / 2;
        }
        else {
            x = x + d * Rand();
            y = y + d * Rand();
            if (x < 0) x = x + w;
            if (x > w-10) x = x - w;
            if (y < 0) y = y + h;
            if (y > h-10) y = y - h;
        }

        context.fillStyle = "rgb("+
            Math.floor(Math.random()*256)+","+
            Math.floor(Math.random()*256)+","+
            Math.floor(Math.random()*256)+")";
        context.beginPath();
        context.rect(x, y, d-1, d-1);
        context.closePath();
        context.fill();
    }
}

Файл "random_walk.html"

<html>
<head>
    <script src="random_walk.js" type="text/javascript"></script>
</head>
<body onload="MainRW(document.getElementById('canvasRW'));">
    <canvas id="canvasRW" width="800" height="600" style="border:1px solid #dddddd;"></canvas>
</body>
</html>

</toggledisplay>

Использование мыши

Это приложение - аналог вот этого flash-приложения, написанный на JavaScript

<addscript src=ocanvas-251/> <addscript src=mouse_use/>

Не удается найти HTML-файл mouse_use_TM.html


Текст программы на языке JavaScript (разработчик Цветков Денис, использована библиотека oCanvas): <toggledisplay status=hide showtext="Показать↓" hidetext="Скрыть↑" linkstyle="font-size:default"> Файл "mouse_use.js"

function MainMU() {
    var canvas  = document.getElementById('canvasMU');
    var context = canvas.getContext("2d");

    var w = canvas.width;
    var h = canvas.width;

    var y0 = h / 2;
    var r = w  / 7;

    var canvas = oCanvas.create({
        canvas: "#canvasMU",
        fps: 60
    });

    var rectangle = canvas.display.rectangle({
        x: r,
        y: y0-r*2,
        width: 2*r,
        height: 2*r,
        fill: "rgba(255, 0, 0, 1)"
    });

    var arc = canvas.display.arc({
        x: 5*r,
        y: y0-r,
        radius: r,
        start: 0,
        end: 360,
        fill: "rgba(0, 0, 255, 1)"
    });

    canvas.addChild(rectangle);
    canvas.addChild(arc);

    rectangle.dragAndDrop({
        changeZindex: true,,
        move: function ()  {this.fill = "rgba(255, 0, 0, 0.5)";},
        end: function ()    {this.fill = "rgba(255, 0, 0, 1)";}
    });
    arc.dragAndDrop({
        changeZindex: true,
        move: function ()  {this.fill = "rgba(0, 0, 255, 0.5)";},
        end: function ()    {this.fill = "rgba(0, 0, 255, 1)";}
    });
}

Файл "mouse_use.html"

<html>
<head>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/ocanvas/2.5.1/ocanvas.min.js"></script>
    <script src="mouse_use.js" type="text/javascript"></script>
</head>
<body onload="MainMU();">
    <canvas id="canvasMU" width="400" height="300" style="border:1px solid #dddddd;"></canvas>
</body>
</html>

</toggledisplay>


Как самому выложить сюда скрипт

Один из способов выложить скрипт, использующий canvas, на страничку сайта tm.spbstu.ru:

  • Оформить в скрипте стартовую функцию (как в примерах на этой страничке)
  • Сделать специальный HTML-файл для плагина HTMLets. Например:

Файл "random_walk_TM.html"

<canvas id="canvasRW" width="800" height="600"></canvas>
<script type="text/javascript">MainRW(document.getElementById('canvasRW'));</script> // MainRW(...) - стартовая функция скрипта
  • Загрузить скрипт на сервер в папку jsscripts, а HTML файл - в папку htmlets

Примечание. Для того, чтобы загрузить файлы на сервер, обратитесь к администратору

  • При верстке странички на tm.spbstu.ru добавить следующие строки:
<addscript src=random_walk/>    // скрипт добавится на страничку в <head></head>
<htmlet nocache="yes">random_walk_TM</htmlet>    // содержимое специального файла добавится на страницу

Примечание 1. Не называйте стартовую функцию Main() - она будет пересекаться с уже имеющимися скриптами движка сайта.

Примечание 2. Не используйте точки в названии файла со скриптом - движок сервера не обработает такой файл.

Примечание 3. Можно оформить весь скрипт в htmlet