JavaScript

"Спроси меня" с Вадимом Дяченко (YellowAfterlife)

Дяченко Вадим или YellowAfterlife
Я работаю преимущественно с Haxe, GameMaker, и JavaScript.
Для Haxe мной были созданы openfl-bitfive (позволяет создавать компактные и быстрые приложения на OpenFL) и HaxMin (помогает сжимать генерируемые Haxe файлы .js без вреда функционалу).

Прототип парсера логов Skype чата на Haxe

Просто оставлю эту ссылку здесь: http://try.haxe.org/#30E35
Там прототип парсера логов из чата в Skype, которым я иногда пользуюсь для себя и чтобы быстро почистить полезный с моей тз кусок чата и выкинуть его в этот раздел форума: http://haxe.ru/forums/raznoe/logi-chata (кстати, мне жаль немного, что я один пока пытаюсь увековечивать (и делать доступными поисковикам) куски чата так. Особенно если вы задали там вопрос, а вам полезно ответили, было бы хорошо потратить пару минут на то, чтобы расшарить пользу с остальным миром.)

Пользуйтесь тоже на здоровье. Достаточно вставить нужный кусок в содержимое переменной log и нажать Run (если кусок большой, после этого еще придется нажать Fullscreen, чтобы увидеть всё)

haXe/js Рисуем с библиотекой raphaelExtern

1) Вот тут нашел ссылку на библиотеку http://lib.haxe.org/p/raphaelExtern.
2) Установил haxelib install raphaelExtern
3) Cоздал haxe->js проект
4) Подключил библиотеку к проекту. Project/Properties/Compliler Options/Libraries/ добавил raphaelExtern
5) Написал код: (См. "How to use it" http://raphaeljs.com/ )

class Main
{
        static function main()
        {
                var paper = new Raphael(10, 50, 320, 200);

                // Creates circle at x = 50, y = 40, with radius 10
                var circle = paper.circle(50, 40, 10);
                // Sets the fill attribute of the circle to red (#f00)
                circle.attr("fill", "#f00");

                // Sets the stroke attribute of the circle to white
                circle.attr("stroke", "#fff");
        }
}

6) Всё скомпилировалось. При запуске через браузер вижу следующее:
"Raphael is not defined
Called from Main::main"

Баг в Haxe

Нашел один интиресный баг в haxe
main.hx:

import js.Dom;
import js.Lib;
import classes.DisplayObject;
/**
 * ...
 * @author Ekstazi
 */


class Main
{
        static var _logo:Dynamic= new DisplayObject('div');
       
        static function main()
        {
        }
}

displayobject.hx:
package classes;
import js.Dom;
//import js.HtmlDom;
import js.Lib;

class DisplayObject
{
        var obj:HtmlDom;
        public function new(name:Dynamic)
        {
                Lib.window.onload = function(e:Dynamic) {
                        Lib.window.alert(untyped __js__('typeof(name)'));
                }
                obj = Lib.document.createElement(name);
        }
       
        public function addChild(child:HtmlDom) {
                obj.appendChild(child);
                //obj.
        }
       
}

Вызывает ошибку, причина в том, что объявление статических переменных идет перед кодом:
js.Lib.document = document;
js.Lib.window = window;
js.Lib.onerror = null;

Кто-нибудь

Может кто нибудь подскажет мне как в haxe написать нечто подобное ?
Код Javascript:

function test(a){
  if (this instanceof test) this.init();
  else return new test(a);
}
this.prototype.init=function(){
   this.bla='trulala';
}

Пример простой игры на haXe / JavaScript

Michel "Filt3rek" Romecki опубликовал пример простой браузерной игры, написанной на haXe с JavaScript в качестве целевой платформы. Весь haXe код занимает всего около ста строк + немного html и css. Игра работает во всех основных браузерах.
По словам автора, писать JavaScript на haXe ему показалось проще и интереснее чем на самом JS.

Все исходники игры Мишель опубликовал в дневнике.

RSS-материал