local gfxe = require('plugin.gfxe')
--for k, v in pairs(gfxe) do print (k, type(v)) end
local font
local platform = system.getInfo('platform')
if platform == 'android' then
local asset_reader = require('plugin.AssetReader')
font = asset_reader.Read('fonts/Inconsolata-Regular.ttf')
else
local file = io.open(system.pathForFile('fonts/Inconsolata-Regular.ttf'), 'rb')
font = file:read('*a')
file:close()
end
-------------------------------------------------------------------
local sizing = gfxe.newSizing()
sizing.zoom = 2
sizing.crop = gfxe.CROP_TO_BBOX
local svg1 = gfxe.newScalableImage(
{
-- filename = 'images/h350.svg'
filename = 'images/test.svg'
},
{
fontData = font,
fontFamily = 'Inconsolata'
}
)
svg1.x, svg1.y = display.contentCenterX, display.contentCenterY
local isShiftDown = false
local function onKey(event)
print(event.keyName)
if event.phase == "down" and event.keyName == "leftShift" or event.keyName == "rightShift" then
isShiftDown = true
elseif event.phase == "up" and event.keyName == "leftShift" or event.keyName == "rightShift" then
isShiftDown = false
end
return false
end
Runtime:addEventListener("key", onKey)
svg1:modify({
sizing = sizing:raw()
})
svg1:addEventListener("tap", function(event)
if isShiftDown then
sizing.zoom = sizing.zoom - 1
else
sizing.zoom = sizing.zoom + 1
end
svg1:modify({ sizing = sizing:raw() })
end)
-- Add touch event listener for moving svg1 by mouse/finger
local dragStartX, dragStartY, svgStartX, svgStartY
local function moveSVG(event)
if event.phase == "began" then
display.currentStage:setFocus(svg1)
dragStartX = event.x
dragStartY = event.y
svgStartX = svg1.x
svgStartY = svg1.y
return true
elseif event.phase == "moved" then
local dx = event.x - dragStartX
local dy = event.y - dragStartY
svg1.x = svgStartX + dx
svg1.y = svgStartY + dy
return true
elseif event.phase == "ended" or event.phase == "cancelled" then
display.currentStage:setFocus(nil)
return true
end
return false
end
svg1:addEventListener("touch", moveSVG)