cocoStudioUIforlua示例

  • 本帖最后由 rrobin 于 2013-9-7 18:00 编辑 *

RT,由于版本更新,原本计划今天写完的所有示例推迟了…只写了一部分,不过已经可以参考,剩下的只是体力活了
示例下载地址:
http://pan.baidu.com/share/link?shareid=3365562448&uk=2956369506 debug版…http://pan.baidu.com/share/link?shareid=3548003168&uk=2956369506 release版
新增了UIWidget绑定lua的函数
registerEventScript

lua回调示例这样

function eventHandler(eventType)
     if eventType == "pushDown" then
        -- do something
     end
end

现有eventType为
“pushDown”
“move”
“releaseUp”
“cnacelUp” (这个拼写错误了…⊙?⊙b汗)
“longClick” (这个studio还未实现)
“selected”
“unSelected”
“percentChanged”
“attachWithIME”
“detachWithIME”
“insertText”
“deleteBackward”
“berthToLeftBottom”
“berthToLeftTop”
“berthToRightBottom”
“berthToRightTop”
“berthToLeft”
“berthToTop”
“berthToRight”
“berthToBottom”
“bounceOver”
“bounceToLeftBottom”
“bounceToLeftTop”
“bounceToRightBottom”
“bounceToRightTop”
“bounceToLeft”
“bounceToTop”
“bounceToRight”
“bounceToBottom”
“initChild”
“updateChild”
“scrollToTop”
“scrollToBottom”
“scrollToLeft”
“scrollToRight”

本来回调可以返回控件本身的指针…不知道为什么studio把widgetName的枚举去掉了…唉~~~~

学习了 感谢楼主 继续加油

哇塞,楼主好人啊!等了楼主好几天了~

— Begin quote from ____

%url%黑夜 发表于 2013-9-8 00:15
我意思是提供下PKG文件

— End quote

可以,今天完成完整示例的时候遇到了点小问题,明天应该可以开源了

  • 本帖最后由 rrobin 于 2013-9-7 22:38 编辑 *

— Begin quote from ____

%url%黑夜 发表于 2013-9-7 20:41
可反提供源码么?

— End quote

代码真的简单到不用开源…等我有空把修改步骤写一下吧…lua代码在文件夹里就可以看到


function UIButtonTest(Scene)
        local widgetSize = widget:getRect().size
        local displayValueLabel = UILabel:create()
        displayValueLabel:setText("No Event")
        displayValueLabel:setFontName("Marker Felt")
        displayValueLabel:setFontSize(32)
        displayValueLabel:setAnchorPoint(ccp(0.5, -1))
        displayValueLabel:setPosition(ccp(widgetSize.width / 2.0, widgetSize.height / 2.0))
        uiLayer:addWidget(displayValueLabel)
        
        local alert = UILabel:create()
        alert:setText("Button")
        alert:setFontName("Marker Felt")
        alert:setFontSize(30)
        alert:setColor(ccc3(159, 168, 176))
        alert:setPosition(ccp(widgetSize.width / 2.0, widgetSize.height / 2.0 - alert:getRect().size.height * 1.75))
        uiLayer:addWidget(alert);
        
        local  button = UIButton:create()
        button:setTouchEnable(true)
        button:loadTextures("cocosgui/animationbuttonnormal.png", "cocosgui/animationbuttonpressed.png", "")
        button:setPosition(ccp(widgetSize.width / 2.0, widgetSize.height / 2.0))
 
        local function buttonEvent(eventType)
            if eventType == "pushDown" then
                   displayValueLabel:setText("Touch Down")
            elseif eventType == "move" then
                    displayValueLabel:setText("Touch Move")
            elseif eventType == "releaseUp" then
                    displayValueLabel:setText("Touch Up")
            end
        end
       
        button:registerEventScript(buttonEvent)       
        uiLayer:addWidget(button)
        
        return Scene
end

function UIButtonTest_Scale9(Scene)
        local widgetSize = widget:getRect().size
        local displayValueLabel = UILabel:create()
        displayValueLabel:setText("No Event")
        displayValueLabel:setFontName("Marker Felt")
        displayValueLabel:setFontSize(32)
        displayValueLabel:setAnchorPoint(ccp(0.5, -1))
        displayValueLabel:setPosition(ccp(widgetSize.width / 2.0, widgetSize.height / 2.0))
        uiLayer:addWidget(displayValueLabel)
        
         local alert = UILabel:create()
        alert:setText("Button scale9 render")
        alert:setFontName("Marker Felt")
        alert:setFontSize(30)
        alert:setColor(ccc3(159, 168, 176))
        alert:setPosition(ccp(widgetSize.width / 2.0, widgetSize.height / 2.0 - alert:getRect().size.height * 1.75))
        uiLayer:addWidget(alert);
        
        local  button = UIButton:create()
        button:setTouchEnable(true)
        button:setScale9Enabled(true)
        button:loadTextures("cocosgui/button.png", "cocosgui/buttonHighlighted.png", "")
        button:setPosition(ccp(widgetSize.width / 2.0, widgetSize.height / 2.0))
        button:setSize(CCSizeMake(150,button:getContentSize().height * 1.5))
 
        local function buttonEvent(eventType)
            if eventType == "pushDown" then
                   displayValueLabel:setText("Touch Down")
            elseif eventType == "move" then
                    displayValueLabel:setText("Touch Move")
            elseif eventType == "releaseUp" then
                    displayValueLabel:setText("Touch Up")
            end
        end
       
        button:registerEventScript(buttonEvent)       
        uiLayer:addWidget(button)
        
        return Scene
end

function UIButtonTest__PressedAction(Scene)
        local widgetSize = widget:getRect().size
        local displayValueLabel = UILabel:create()
        displayValueLabel:setText("No Event")
        displayValueLabel:setFontName("Marker Felt")
        displayValueLabel:setFontSize(32)
        displayValueLabel:setAnchorPoint(ccp(0.5, -1))
        displayValueLabel:setPosition(ccp(widgetSize.width / 2.0, widgetSize.height / 2.0))
        uiLayer:addWidget(displayValueLabel)
        
         local alert = UILabel:create()
        alert:setText("Button Pressed Action")
        alert:setFontName("Marker Felt")
        alert:setFontSize(30)
        alert:setColor(ccc3(159, 168, 176))
        alert:setPosition(ccp(widgetSize.width / 2.0, widgetSize.height / 2.0 - alert:getRect().size.height * 1.75))
        uiLayer:addWidget(alert);
        
        local  button = UIButton:create()
        button:setTouchEnable(true)
        button:setPressedActionEnabled(true)
        button:loadTextures("cocosgui/animationbuttonnormal.png", "cocosgui/animationbuttonpressed.png", "")
        button:setPosition(ccp(widgetSize.width / 2.0, widgetSize.height / 2.0))
  
        local function buttonEvent(eventType)
            if eventType == "pushDown" then
                   displayValueLabel:setText("Touch Down")
            elseif eventType == "move" then
                    displayValueLabel:setText("Touch Move")
            elseif eventType == "releaseUp" then
                    displayValueLabel:setText("Touch Up")
            end
        end
       
        button:registerEventScript(buttonEvent)       
        uiLayer:addWidget(button)
        
        return Scene
end

求开源,求armature也绑定,求无bug

现在cocos2d-x已经做了lua绑定了,请您直接下载新版本的cocos2d-x版本