【发布时间】:2014-04-25 09:53:25
【问题描述】:
我有一个简单的场景。共有三个按钮小部件和一个标题。
当我将它们包含到group 中时,不会绘制对象。但是,当我不包括它们时,它们就会出现。但退出场景后它们不会消失。
我一直在阅读有关故事板模块的信息,并且我确信通过将它们加入到组中,我以正确的方式使用它。
为什么显示对象包含在组中时不绘制?
我将包含我的 main.lua,以防万一。
main.lua:
local storyboard = require("storyboard")
local mydata = require("mydata")
local widget = require( "widget" )
centerX = display.contentCenterX
centerY = display.contentCenterY
_W = display.contentWidth
_H = display.contentHeight
display.setStatusBar( display.HiddenStatusBar )
local bkg = display.newImage( "stripes.png", centerX, centerY )
local disclaimer = display.newText("DISCLAIMER", 300-75, centerY-175, 320, 0, "Helvetica", 30 )
local message = display.newText("The creators take no responsibility for\nany damage done by this app, etc.\n", 300-110, centerY-120, 320, 0, "Helvetica", 16)
local howtoTitle = display.newText("HOW TO PLAY", 300-85, centerY-50,320, 0, "Helvetica", 30)
local howto = display.newText("1. Select Time Frame\n 2.Select Sides\n 3.Have Fun", 300-60, centerY, 320, 0, "Helvetica", 16)
mydata.time = 0
mydata.sides = 0
mydata.hits = 0
-- Function to handle button events
local function handleButtonEvent( event )
local phase = event.phase
if "ended" == phase then
event.target:removeSelf()
disclaimer:removeSelf()
message:removeSelf()
howto:removeSelf()
howtoTitle:removeSelf()
storyboard.loadScene("time_select")
end
end
local playButton = widget.newButton {
left = 100,
top = 350,
width = 105,
height = 39,
defaultFile = "start.png",
overFile = "start_pressed.png",
label = "",
onEvent = handleButtonEvent,
}
time_select.lua:
local storyboard = require("storyboard")
local widget = require("widget")
local scene = storyboard.newScene()
local mydata = require("mydata")
local function fifteenSecondButtonEvent( event )
local phase = event.phase
if "ended" == phase then
mydata.time = 15
storyboard.gotoScene("play")
end
end
local function thirtySecondButtonEvent( event )
local phase = event.phase
if "ended" == phase then
mydata.time = 30
storyboard.gotoScene("play")
end
end
local function sixtySecondButtonEvent( event )
local phase = event.phase
if "ended" == phase then
mydata.time = 60
storyboard.gotoScene("play")
end
end
function scene:createScene( event )
local group = self.view
local timeText = display.newText("TIME", 160, 70, "Helvetica", 30)
group:insert( timeText )
local fifteenButton = widget.newButton {
time = 15,
left = 75,
top = 150,
width = 164,
height = 42,
defaultFile = "fifteen_button.png",
overFile = "fifteen_button_pressed.png",
label = "",
onRelease = fifteenSecondButtonEvent
}
group:insert(fifteenButton)
local thirtyButton = widget.newButton {
time = 30,
left = 75,
top = 250,
width = 164,
height = 42,
defaultFile = "thirty_button.png",
overFile = "thirty_button_pressed.png",
label = "",
onRelease = thirtySecondButtonEvent
}
group:insert(thirtyButton)
local sixtyButton = widget.newButton {
time = 60,
left = 75,
top = 350,
width = 164,
height = 42,
defaultFile = "sixty_button.png",
overFile = "sixty_button_pressed.png",
label = "",
onRelease = sixtySecondButtonEvent
}
group:insert(sixtyButton)
print( "Number of children in Display Group: " .. group.numChildren )
end
function scene:willEnterScene( event )
local group = self.view
end
function scene:enterScene( event )
local group = self.view
end
function scene:exitScene( event )
local group = self.view
fifteenButton:removeEventListener( 'onRelease', fifteenSecondButtonEvent ) -- line 92
thirtyButton:removeEventListener( 'onRelease', thirtySecondButtonEvent )
sixtyButton:removeEventListener( 'onRelease', sixtySecondButtonEvent )
timeText:removeSelf()
timeText = nil
if fifteenButton then
fifteenButton:removeSelf()
fifteenButton = nil
end
if thirtyButton then
thirtyButton:removeSelf()
thirtyButton = nil
end
if sixtyButton then
sixtyButton:removeSelf()
sixtyButton = nil
end
display.remove(group)
storyboard.removeScene( "time_select" )
end
function scene:destroyScene( event )
local group = self.view
end
scene:addEventListener("createScene", scene)
scene:addEventListener("willEnterScene", scene)
scene:addEventListener("enterScene", scene)
scene:addEventListener("exitScene", scene)
scene:addEventListener("destroyScene", scene)
return scene
【问题讨论】:
标签: mobile lua storyboard coronasdk