zoukankan      html  css  js  c++  java
  • lua -- 在面板中添加多个部件

    function UIBagController:initItemView( )
        -- 获取面板
        self.panelCenter = tolua.cast(UIHelper:seekWidgetByName(self.owner, "Panel_Center"), "Layout");    
        -- 获取面板下的子节点,多级子节点也可以获取到
        local imageViewGrid1 = tolua.cast(UIHelper:seekWidgetByName(self.panelCenter, "ImageView_Grid1"), "ImageView");
        local x, y = imageViewGrid1:getPosition();
        local h, w = imageViewGrid1:getSize().width, imageViewGrid1:getSize().height;
        local gridX, gridY = x , y
        -- 获取父节点,也就是相应的面板
        self.parentLayout = imageViewGrid1:getParent();
        self.defaultTexture = imageViewGrid1:getTexture()
        imageViewGrid1:setVisible(true);    
        imageViewGrid1:setTouchEnabled(false);
        local imageViewItemTmp = tolua.cast(UIHelper:seekWidgetByName(imageViewGrid1, "ImageView_Item"), "ImageView");    
        imageViewItemTmp:setVisible(false)
        local oLine = 1
    
        print("
    
    ========背包个数==========" .. ItemM:getAmount());
        for i = 2, ItemM:getAmount() do    
            -- 字符串处理函数
            local gridName = string.format("ImageView_Grid%d", i);    
            local imageViewGrid = tolua.cast(UIHelper:seekWidgetByName(self.panelCenter, gridName), "ImageView");
            if imageViewGrid == nil then
                local imageViewGridTmp = imageViewGrid1:clone();    
                table.insert(self.itemArr, imageViewGridTmp);
                if (i-1)%self.numPerLine == 0 then
                    gridY = y - (i-1)/self.numPerLine * self.gridYInterval
                    oLine = oLine + 1
                end    
                gridX = x + (i-1)%self.numPerLine * self.gridXInterval
                imageViewGridTmp:setName(string.format("ImageView_Grid%d", i));                
                local labelItemNameTmp = tolua.cast(UIHelper:seekWidgetByName(imageViewGridTmp, "Label_ItemName"), "Label");
                labelItemNameTmp:setText(" ");
                self:setLabelFont(labelItemNameTmp)
                local labelItenNum = tolua.cast(UIHelper:seekWidgetByName(imageViewGridTmp, "Label_ItenNum"), "Label");    
                labelItenNum:setText(" ");
                self:setLabelFont(labelItenNum)
                imageViewItemTmp = tolua.cast(UIHelper:seekWidgetByName(imageViewGridTmp, "ImageView_Item"), "ImageView");    
                imageViewItemTmp:setVisible(false);        
                imageViewGridTmp:setVisible(true);    
                -- 将克隆出来的节点添加进去
                self.parentLayout:addChild(imageViewGridTmp);
                imageViewGridTmp:setPosition(ccp(gridX, gridY));
                imageViewGridTmp:setTouchEnabled(true);
            else
                table.insert(self.itemArr, imageViewGrid);
            end
        end
        -- 获取按钮控件 后面的Button要看引擎中类是怎么定义的
        local btnArrange = tolua.cast(UIHelper:seekWidgetByName(self.owner, "btnArrange"), "Button");
        -- 给控件绑定事件,这里不一定只有按钮才可以,其他控件也可以
        btnArrange:addTouchEventListener(function ( uiwidget, eventType )
            -- 判断触摸类型
            if eventType == TOUCH_EVENT_ENDED then
                self:ClearGoods();
                self:initItemView();
                self:showData();
                UISystemTips:SystemTips("bag_arrange");
            end;
        end);
    end
  • 相关阅读:
    从内存池到连接池 老码农眼中的资源池
    资源池(从内存池到连接池)
    资源池设计模式 (Resource Pool)和数据池的简单实现
    数据库连接池的工作原理
    原理 : 线程池、连接池、内存池
    聚簇索引与非聚簇索引(也叫二级索引)
    MyISAM 和 InnoDB 索引的区别
    MySQL 聚簇索引&&二级索引&&辅助索引
    关于如何提高Web服务端并发效率的异步编程技术
    为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
  • 原文地址:https://www.cnblogs.com/newlist/p/3667128.html
Copyright © 2011-2022 走看看