【cocos-2dx】coocs与配置文件的最最基础的东西一

关于配置文件与cocos的交互关系,开始也是一脸懵逼,自己找了资料一点一点地学,现在也没有多么的牛逼,先把一些资料贴出来供大家看看。
配置文件文档链接(基础与事件)

关于配置文件的基础:
在这里插入图片描述

 18800<?xml version="1.0" standalone="yes" ?>
    <Root>
        <jsonContainer >
            <item  type="Layout"  jsonName="Panel_yun"><!--   层容器    --><!-- 用于存放图片,文本,按钮等各种对象,为了方便同时显示或隐藏这些对象,例如关卡选择界面的很多云朵图片同时隐藏就是放在一个层容器中-->
            <item  type="Button" jsonName="Button"><!--   按钮    -->
             <item  type="CheckBox" jsonName="CheckBox"><!-- 类似于按钮,但是分为选中和未选中状态,人物宠物的选择按钮就是这个 -->  
            <item  type="Image" jsonName="Image_userf" >   <!-- 图片   -->
            <item  type="Image" jsonName="Image_user" dataType="connect" data="UserSystem.UserProperty.UserImage"/><!-- 关联--><!-- 作用是把图片和数据库中的某个表中的某一列关联起来,-->
                                                                           <!-- 关联格式: 某个系统,某个表,某一列名称-->
            <item  type="Text" jsonName="Label_price" dataType="connect" data="RoleSystem.Role.NextGradePrice:1005" /><!-- 文本 --><!-- 例如关卡开始页面的星星数达成条件,这类文本多用于绑定数据库 -->   
            <item  type="AtlasText" jsonName="AtlasLabel_gold"  dataType="connect" data="RoleSystem.Role.CurrGradeProperty:1004.skillgold"/><!-- 数字标签 -->
            <!-- 可以看成图片格式的lable,相比文本视觉效果更好,目前主要用于数字类型的文本,例如结算时候的分数,需要注意的是数字标签的名字如果写错游戏一定会崩溃 -->
            <item  type="Json"  jsonName="daojuguanqia.json" initFlag="false" /><!-- 作声明,所有对象要进行任何操作都要先进行声明,前面的名词解释的格式也都是在做声明,可以理解为让一个对象做什么事情,你首先要喊出它的名字 -->
            <item  type="ListView" jsonName="ListView"><!-- 用于存放cell的容器,有横向和纵向滑动两种 --> 
            <item  type="Animate" jsonName="Animation0" initFlag="true"/><!-- 最基本的播放动画语句,用于自动循环播放的动画,例如关卡选择界面上的那些青蛙,风车等动画,这同时也是声明这个动画的名字 -->
            <item  type="Animate" jsonName="Animation0" initFlag="false"/><!-- false表示不会自动播放,这种动画需要某个事件操作它进行播放,例如关卡开始时候的心下落到开始按钮上的心爆开的动画 -->
        </jsonContainer>  
    </Root>

关于配置文件的事件:

<?xml version="1.0" standalone="yes" ?>
<Root>
    <jsonContainer >
        <!--<!--<!--<!--<!--<!--<!--<!-基础介绍-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->
        <item  type="Button" jsonName="Button"><!--   所有的event事件需要写在item里面。这个是最高的一层,    -->
            <event  name="OnTouchEnded"><!-- 一级事件, 在这里确定要执行的是哪种类型的操作,在对象层的下一级-->
                <eventCallBack name="UIInter.ShowJson"><!-- 二级事件,在这里确定要对具体某个类型对象执行具体的某个操作,在一级事件之下 -->
                    <para name="jsonFile" type="jsonValue" getName="文件夹/json名字"/>
                </eventCallBack><!-- 操作类型 --><!-- 取值类型 --><!-- 执行动作的对象的具体名字 -->
            </event><!-- 注意事件层结束时要写结尾 --><!-- 忘了写结尾可能出现的BUG是这个页面很多之前显示正确的对象都显示错误 -->
        </item><!-- 注意对象层结束时要写结尾 -->
        <!--<--<--<--<--<--<--<--<--一级事件-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->
        <event  name="OnShowed"><!-- 一级事件1,用于显示页面,显示图片,显示按钮,显示数字标签和文本等 -->
        
        </event>
        <event  name="OnHided">   <!-- 一级事件2,用于隐藏页面 -->
        </event>
        
        <event  name="OnCreate"><!-- 一级事件3,用于创建cell以及点击按钮后执行的事件,与OnShowed区别是只有第一次启动游戏创建页面也就是第一次读取json的时候执行,而OnShowed每次进入这个页面都会执行 -->
        </event>
        
        <event  name="OnTouchEnded"><!-- 一级事件4,多用于按钮点击之后执行的操作 -->
        </event>
        
        <event name="OnEffectCallback"><!-- 一级事件5,回掉事件,就是正在执行的事件执行到某个过程中间的时候转而进入另一个事件继续执行,例如商城中道具购买按钮点击之后商城页面执行弹出奖励弹窗的事件,而奖励弹窗弹出后执行完所有动作准备关闭时是回调到商城页面进行关闭奖励弹窗的动作的,很多连锁执行的事件都需要回调进行,具体用法参考二级事件中的 *回调事件* 详细介绍-->
        </event>
        
        
        <!--<!--<!--<!--<!--<!--<!--<!-基础二级事件-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->
        
        
        
        <!-- 显示--><!-- 和OnShowed事件类似,但是更具体,这个专指显示页面也就是json -->
        <eventCallBack name="UIInter.ShowJson">
            <para name="jsonFile" type="jsonValue" getName="文件夹/json名字"/><!-- 俄罗斯方块配置中不包含文件夹 -->
        </eventCallBack>
        
        <!-- 隐藏 --><!-- ,和OnHided事件类似 -->
        <eventCallBack name="UIInter.HideJson">
            <para name="jsonFile" type="jsonValue" getName="jinbizuanshi/jinbizuanshi1.json"/>
        </eventCallBack>
        
        <!-- 刷新 --><!-- 用于刷新图片,文本,数字标签等等,使这些对象执行了某些事件之后可以立即更新为新的状态 -->
        <eventCallBack name="UIInter.UpdateData">
            <para name="uiObject1" type="itemObject" getName="Image_upgrade_jiage2"/>
            <para name="uiObject2" type="itemObject" getName="AtlasLabel_upgrade_price2"/>
        </eventCallBack>
        
         <!-- 返回home --><!-- 专用于返回home页面,不同的游戏home页面可能不同,例如俄罗斯的是关卡选择页面,消消乐的是home页面,这个在数据库中UIkey表格中更改 -->
        <eventCallBack name="SettlementSystem.BackHome">
        </eventCallBack>
        
        <!-- 隐藏事件--><!-- 通过绑定某种状态而判断显示或者隐藏,例如角色购买页面选中的人物要有对号显示,那么选中的时候执行显示,非选中状态的就会执行隐藏动作 -->
        <eventCallBack name="UIInter.SetIsVisible">
            <para name="value" type="propertyValue" getName="RoleSystem.Role.HaveNextGrade:1002"/>
            <para name="uiObject1" type="itemObject" getName="Image_5"/><!-- 取得的字符串为true时表示hide-->
            <para name="uiObject2" type="itemObject" getName="Image_upgrade_jiage2"/><!-- 可以同时隐藏几个对象,需要注意的是uiObject后面要标注数字区分-->
        </eventCallBack><!-- 关联结构也可以达到隐藏事件的效果,不同的是隐藏事件需要执行很多次判断操作,而关联结构没有这个缺点,但是有些事件无法关联数据库就只能用隐藏事件进行操作了-->
        <item  type="Image" jsonName="Image_user" dataType="connect" data="UserSystem.UserProperty.UserImage"/>
        
        <!--    音效    -->
        <eventCallBack name="SettingSystem.PlayEffectSound">
            <para name="EffectSoundName" type="stringValue" getName="clickSound"/>
            <para name="EffectSoundLoop" type="stringValue" getName="false"/>
        </eventCallBack>
		
		
        
        <!--   标记json   --><!--   给一个json打上标记,赋予它一个属性,这样一个确认按钮就可以执行不同的操作,例如确认购买的不足弹框,之所以知道你这次是金币不足还是钻石不足就是在购买的时候这个弹窗被赋予了商品的价格类型  -->
        <eventCallBack name="UIInter.SetJsonData">
            <para name="jsonFile" type="jsonValue" getName="goumaiqueren_jinbibuzu/goumaiqueren_jinbibuzu.json"/>
            <para name="jsonData" type="propertyValue" getName="ShopSystem.Commodity.CurrencyUnit:?"/>
        </eventCallBack>
        
        <!--    标记对象    --><!-- 给某个按钮或者其他对象打标记,类似标记json的作用,不同的是标记接送json后整个页面都被赋予一个属性了,而仅仅给这个页面的某些按钮打上标记之后,就可以执行不同的属性操作,例如在宠物购买页面,5个按钮被分别赋予上5个宠物的标记,就可以执行不同的动作-->
        <eventCallBack name="UIInter.SetItemMark">
            <para name="uiObject" type="itemObject" getName="ScrollView"/>
            <para name="markValue" type="propertyValue" getName="MissionSystem.MissionMiddle.FullCurrencyMissionID:2.?"/>
        </eventCallBack>
        
        
        <!--   位置事件  -->  <!--   显示的时候根据关卡id来设置角色的坐标    -->
        <eventCallBack name="UIEffect.SetPositionByItem">
            <para name="uiObject1" type="itemObject" getName="Image_faguang"/>
            <para name="location" type="itemObject" getName="guanqia?/guanqia?.json/Panel_<ScrollView>"/>
        </eventCallBack>
        
        <!--    触摸锁定    --><!--    用于点击某个按钮后锁定屏幕,防止再次点击其他按钮引起两个页面重叠显示的BUG   --><!--    锁定事件要放在一级事件中的OnTouchEnded或者回调事件中  -->
        <eventCallBack name="UIInter.SetTouchEventLock">
            <para name="IsLock" type="stringValue" getName="true"/>
        </eventCallBack>
        <!--    触摸解锁    --><!--   在点击某个按钮锁定屏幕后,在要弹出的页面的一个OnShowed事件中把触摸锁定解除   --><!--    解锁事件要放在这个页面的返回按钮的一级事件OnHided事件中  -->
        <eventCallBack name="UIInter.SetTouchEventLock">
            <para name="IsLock" type="stringValue" getName="false"/>
        </eventCallBack>
        
        <!--    触摸设置   --><!--         设置某个按钮是否可触摸,例如宠物页面,升级和购买按钮是叠加在一起的,购买之后,要隐藏并且设置购买按钮不可触摸           -->
        <eventCallBack name="UIInter.SetItemEnable">
            <para name="value" type="stringValue" getName="false"/><!--    ture是设置成可以触摸    -->
            <para name="uiObject" type="itemObject" getName="Button_1"/>
        </eventCallBack>
        
        <!--    播放动画    --><!--   这种动画是在执行某个事件时候才会播放,例如关卡结算的飞金币钻石爱心的动画   -->
        <eventCallBack name="UIInter.PlayAction">
            <para name="uiObject" type="itemObject" getName="Animation_xing1"/>
        </eventCallBack>
        
        <!-- 调用程序接口--> <!-- 用于程序执行某些操作,例如关卡选择界面的飘雪花的粒子动画就是这样播放的-->
        
        <eventCallBack name="UISystem.HandleUIEvent">
            <para name="functionName" type="stringValue" getName="unlock"/> <!-- 和程序协定的名称-->
            <para name="value" type="stringValue" getName="2"/><!-- 标记类型,例如关卡选择界面要知道播放雪花还是落叶的动画-->
            <para name="uiObject" type="itemObject" getName="ScrollView"/><!-- 执行操作的对象-->
        </eventCallBack>
        
        <!--    停止动作    --><!--   停止一切动作,一般在关闭页面时候使用,防止下一次进入这个页面继续播放未完成的动画   -->
        <eventCallBack name="UIInter.StopAllActions">
            <para name="uiObject" type="itemObject" getName="AtlasLabel_jinbi"/>
            <para name="uiObject1" type="itemObject" getName="AtlasLabel_zuanshi"/>
        </eventCallBack>
        
        <!-- 延迟回掉事件--><!-- 延迟一段时间后进行操作,例如领取奖励的时候先飞金币钻石,然后上面的数字才滚动 -->
        
        <eventCallBack name="UIEffect.DelayTime">
            <para name="time" type="numValue" getName="0.1"/><!-- 延迟时间-->
            
            <para name="uiObject" type="itemObject" getName="Image_userf"/><!-- 执行操作的对象-->
            <para name="effectCallback" type="itemObject" getName="Panel_1"/><!-- 一会进行回掉的对象-->
        </eventCallBack>
        
        <!--<!--<!--<!--<!--<!-- <!--<!--    *回掉事件*   -->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->
        
        
        
        <!-- 在执行回调事件之前有时候需要先设置状态,然后根据不同状态进入不同的回调,这里用关卡结算的星星下落动画做例子-->
        <event name="OnEffectCallback"><!--    这里也可以用OnShowed事件   -->
            <!--如果星星数>=1 设置状态为2-->
            <eventCallBack name="UIInter.SetUIItemStatus">
                <para name="value" type="propertyValue" getName="MissionSystem.ResultData.IsStarCount(>=)1:?"/>
                <para name="status" type="stringValue" getName="2"/>
            </eventCallBack>
            <!--如果历史星星数>=1 设置状态为1-->
            <eventCallBack name="UIInter.SetUIItemStatus">
                <para name="value" type="propertyValue" getName="MissionSystem.Mission.IsHistoryBestStar(>=)1:?"/>
                <para name="status" type="stringValue" getName="1"/>
            </eventCallBack>
            <!--执行相应状态的 OnFireCallback-->
            <eventCallBack name="UIInter.FireEventCallback">   <!--这里要注意每个OnFireCallback前面都会有这个FireEventCallback,也是从这里开始执行回调事件-->
                <para name="uiObject" type="itemObject" getName="Image_xing1"/>
            </eventCallBack>
            <!--还原状态,一般设置好状态后会还原,为了下次进入这个回调函数做准备-->
            <eventCallBack name="UIInter.SetUIItemStatus">
                <para name="status" type="stringValue" getName="1"/>
            </eventCallBack>
        </event>
        
        
        AtlasLabel_score_xin
        
        <eventCallBack name="UIInter.SetUIItemStatus">
            <para name="uiObject" type="itemObject" getName="AtlasLabel_score_xin"/>
            <para name="value" type="propertyValue" getName="MissionSystem.Mission.IsHistoryBestStar(>=)3:?"/>
            <para name="status" type="stringValue" getName="2"/>
        </eventCallBack>
        <!--状态1时 为以前获得了一颗星 直接显示星星-->
        <event name="OnFireCallback" status="1">
            <eventCallBack name="UIEffect.DelayTime">
                <para name="time" type="numValue" getName="0"/>
                <para name="uiObject" type="itemObject" getName="Image_xing1"/>
                <para name="effectCallback" type="itemObject" getName="Image_xing2"/>
            </eventCallBack>
        </event>
        
        
        <!--状态2时 为以前没有获得了一颗星 播放这颗星星的动画-->
        <event name="OnFireCallback" status="2">
            <eventCallBack name="UIEffect.BubbleUp"> <!-- 星星从小放大的效果事件	-->
                <para name="value" type="stringValue" getName="1"/>
                <para name="uiObject" type="itemObject" getName="Image_xing1"/>
                <para name="time" type="numValue" getName="0.3"/><!-- 星星从小放大的时间	-->
                <!-- 弹出第二颗星星的回调事件	-->
                <para name="effectCallback" type="itemObject" getName="Image_xing2"/>
            </eventCallBack>
            
            <eventCallBack name="UIInter.PlayAction">
                <para name="uiObject" type="itemObject" getName="Animation_xing1"/>
            </eventCallBack>
        </event>
        
        
        <!--购买事件回调-->        <!--不同于Fire回调的是购买不需要设置状态,直接默认成功为1,失败为2-->
        <item  type="Button" jsonName="Button_queren">
            <event  name="OnTouchEnded">
                <eventCallBack name="ShopSystem.Buy">
                    <para name="ShopID" type="stringValue" getName="?"/>
                </eventCallBack>
            </event>
            <event  name="OnBuyCallback" status="1"><!--   购买事件回调 ,状态:购买成功    -->
            </event>
            <event  name="OnBuyCallback" status="2"><!--   购买事件回调 ,状态:购买失败           -->
            </event>
        </item>
        
        
        <!--更新事件回调-->        <!--暂时不更新而是先进入这个回调事件,例如奖励领取后上面的金币钻石先播放飞的动画之后数字才改变,飞的动画就写在这个回调里面-->
        <event  name="OnUpdateCallback" >
        </event>
<!--<!--<!--<!--<!--<!--<!--<!-二级事件中的各类效果事件-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->



        <!--        钻石弹窗隐藏回调事件        -->
        <eventCallBack name="UIEffect.SlipeOutJsonFile"><!--        UIEffect.SlipeInJsonFile        -->
            <para name="time" type="stringValue" getName="0.2"/><!--   钻石弹窗隐藏时间  -->
            <para name="XBegain" type="stringValue" getName="0"/><!--   X,Y坐标开始到结束的位置  -->
            <para name="YBegain" type="stringValue" getName="300"/>
            <para name="XEnd" type="stringValue" getName="1000"/>
            <para name="YEnd" type="stringValue" getName="300"/>
            <para name="jsonFile" type="jsonValue" getName="zuanshitankuang/zuanshitankuang.json"/>
        </eventCallBack>
        
        <!--        金币或者钻石的滚动事件        -->
        <eventCallBack name="UIEffect.AtlasRoll">
            <para name="valueBegin" type="itemValue" getName="AtlasLabel_jinbi"/><!--起始值来自数字标签的值-->
            <para name="valueEnd" type="propertyValue" getName="PaySystem.Currency.Count:Gold"/><!--结束值来自已经跟新了的系统数据中的值-->
            <para name="uiObject" type="itemObject" getName="AtlasLabel_jinbi"/>
            <para name="time" type="numValue" getName="1.0"/><!--   滚动时间  -->
            <para name="effectCallback" type="itemObject" getName="AtlasLabel_jinbi"/>
        </eventCallBack>
        
        <!--        在ListView上面创建cell        -->
        <item  type="ListView" jsonName="ListView">
            <event  name="OnCreate">
                <eventCallBack name="UIInter.CreateListViewCellByList">
                    <para name="jsonFile" type="stringValue" getName="cell_aixintankuang/cell_aixintankuang1.json"/>
                    <para name="rangeHight" type="stringValue" getName="34"/><!--        这个表示数据库的30ID的商品到34ID的商品        -->
                    <para name="rangeLow" type="stringValue" getName="30"/>
                    <para name="ListData" type="stringValue" getName="ShopSystem.Commidity:"/><!--        这个是数据库中的表名,例如这个是商城表,如果是创建成就Cell自然是成就表       -->
                </eventCallBack>
            </event>
        </item>
        
         <!--        游戏开始时候的心下落动画        -->
        <eventCallBack name="UIEffect.MoveByLocationByItem"><!-- 心的掉落移动动画.....-->
            <para name="time" type="numValue" getName="0.5"/><!-- 移动时间.....-->
            <para name="locationFrom" type="itemObject" getName="Image_xin"/><!-- 移动开始位置....-->
            <para name="locationTo" type="itemObject" getName="Button_play"/><!-- 移动结束位置....-->
            <para name="uiObject" type="itemObject" getName="Image_xin"/>
            <para name="effectCallback" type="itemObject" getName="Image_xin"/>
        </eventCallBack>
        
           <!--        可以将一些图片放大做效果,消消乐关卡结算的三颗星星大小不同,通过放大中间的使得一张图片用于三颗大小不同的星星上        -->
        <eventCallBack name="UIInter.SetScale">
            <para name="uiObject" type="itemObject" getName="Image_start1"/>
            <para name="uiObject2" type="itemObject" getName="Image_start3"/>
            <para name="value" type="numValue" getName="1.50"/><!-- 移放大倍数.-->
        </eventCallBack>
        
<!--<!--<!--<!--<!--<!--<!--<!-二级事件中的特殊事件,不常用-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->-->



         <!-- 商品加入购物车--><!-- 目的是购买之后只要不开始游戏还可以取消,所以购买事件实际上是在点击开始游戏才进行的-->
        <eventCallBack name="ShopSystem.AddToShoppingCart">
            <para name="ShopID" type="stringValue" getName="1077"/><!-- 商品ID-->
        </eventCallBack>
        <!-- 商品移除购物车-->
        <eventCallBack name="ShopSystem.CancelFromShoppingCart">
            <para name="ShopID" type="stringValue" getName="1077"/>
        </eventCallBack>
        
        <!-- 消耗爱心--><!-- 关卡开始页面点击开始按钮进入游戏执行消耗爱心的事件-->
        <eventCallBack name="UserSystem.SpendStrength">
            <para name="StrengthCount" type="numValue" getName="1"/><!-- 消耗爱心数量-->
        </eventCallBack>
        
        <!-- 进入游戏-->
        <eventCallBack name="MissionSystem.PlayMission">
            <para name="MissionID" type="propertyValue" getName="MissionSystem.Mission.MissionID:?"/>
        </eventCallBack>
        
        <!-- 发放奖励 --><!-- 不同的奖励发放会有不同的发放二级事件,下面的字段也不同,使用这些不同字段时参考相同框架的稳定版本的游戏-->
        <eventCallBack name="TaskSystem.SendTaskLoginReward"><!-- 这个例子是每日登录奖励的发放字段 -->
            <para name="taskID" type="propertyValue" getName="TaskSystem.TaskLoginList.FullLastLoginTaskID:1"/>
        </eventCallBack>
        
        <!-- 登陆任务运行 --><!-- 七日登录,新手礼包,测试专用礼包都是通过这个通道来实现的 -->
        <eventCallBack name="TaskSystem.Runlogin">
            <para name="taskListID" type="stringValue" getName="3"/><!-- 通道编号,按照数据库中的登录任务List表相同的编号 -->
        </eventCallBack>
        
    </jsonContainer>
    
    
</Root>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值