22 дек. 2008 г.

Lua Alchemy v0.1

Мы с партнёром по проекту Робертом Штевином (Robert Stehwien) выкатили релиз Lua Alchemy 0.1:

http://code.google.com/p/lua-alchemy

Демо лежит здесь.

Lua Alchemy — это порт языка Lua во Flash при помощи Adobe Alchemy (компилятора C/C++ во флешовый байт-код).

Главная фича — обеспечение тесного взаимодействия между Lua и ActionScript.

Маленький пример (код на Lua):



local alertClass = as3.class("mx.controls::Alert")
local vbox = as3.new("mx.containers::VBox")
local label = as3.new("mx.controls::Label")
local input = as3.new("mx.controls::TextInput")
local button = as3.new("mx.controls::Button")

as3.set(label, "text", "Name:")

as3.set(button, "label", "Say Hello");
as3.call(button, "addEventListener", "click",
function (e)
as3.call(alertClass, "show", "Hello " .. as3.get(input, "text"), as3.type(e))
end, false, 0, true)

as3.call(vbox, "addChild", label)
as3.call(vbox, "addChild", input)
as3.call(vbox, "addChild", button)

as3.call(canvas, "addChild", vbox)

В ближайших планах реализация синтаксического сахара:

local alertClass = as3.class("mx.controls::Alert")
local vbox = as3.new("mx.containers::VBox")
local label = as3.new("mx.controls::Label")
local input = as3.new("mx.controls::TextInput")
local button = as3.new("mx.controls::Button")

label.text = "Name:"
button.label = "Say Hello"

button:addEventListener("click",
function (e)
alertClass:show("Hello " .. input.text, as3.type(e))
end, false, 0, true)

vbox:addChild(label)
vbox:addChild(input)
vbox:addChild(button)

canvas:addChild(vbox)
Код остальных примеров можно посмотреть здесь.