CMP4使用手册 - 皮肤配置【skin.xml】

### CMP4皮肤配置说明

CMP4加载完成皮肤包后，首先需要读取皮肤包中的配置文件，也就是skin.xml，指定名称，不能使用其他的

皮肤配置文件包含了所以皮肤元件的设置信息，如果未设置则使用默认值或者不显示该元件

##### 皮肤元件架构请点击节点名称查看其支持的所有属性，点击属性可以查看属性使用说明

loading ...

### 所有皮肤参数说明

##### 按字母顺序排列也可以点击上面树节点查看对应属性

align | 文本对齐，支持left/center/right，默认为left居左
alpha | 透明度，支持0-1范围之间的数字，默认为1
author | 当前皮肤作者
backgroundColor | 文本框背景色，默认无
bold | 文本是否为粗体，默认不加粗
borderColor | 文本边框颜色，默认无
bullet | 列表音乐项前面的默认图标
button_src | 滚动条上下按钮皮肤源地址，6个状态(3x2)
closed | 列表项包含子列表时，在关闭时要显示的图标
color | 文本颜色，默认为黑色#000000
context_menu
display | 是否显示该元件
email | 当前皮肤的联系邮箱
fade | 关闭时是否有渐隐效果
font | 文本字体，默认为Verdana
fullscreen_max | 见全局配置中的fullscreen_max参数，这里优先级高
fullscreen_scale | 见全局配置中的fullscreen_scale参数，这里优先级高
glow | 发光滤镜，如：glow="#F0E68C,1,2,2,1,5,1" 最多8个参数："color, alpha, blurX, blurY, strength, quality, inner, knockout" 详情见CMP4滤镜参数详解：http://bbs.cenfun.com/thread-11031-1-1.html
group | 对象分组，如果两个窗口的分组值相同，则拖动其中一个，另一个也会发生联动；默认窗口之间不会相互影响，即在不同组
horizontal | 歌词是否横向滚动，默认为0，即竖向往上滚动，否则为横向滚动，且设置值为1为隐藏上下句，设置为2将显示上下句
hover_volume | 表示鼠标移入或移出时，是否自动显隐音量条，默认值为0，即不自动显隐音量条 注意，启用此功能时，请将静音按钮和音量条的位置连接起来，这样才不会移出时出现消失情况 而且推荐将音量条volume竖起来，也就是设置其旋转参数rotation为-90
image | 列表项的缩略图，如果有，将启用缩略图功能，默认不启用 详情见CMP4缩略图皮肤：http://bbs.cenfun.com/thread-12281-1-1.html
image_height | 如果启用了image参数的缩略图功能，将设置其高，默认30
image_width | 如果启用了image参数的缩略图功能，将设置其宽，默认40
italic | 文本是否显示斜体，默认不启用
leading | 文本行距，默认0
leftMargin | 文本左边距，默认0，一般不用
letterSpacing | 一个数字，表示在所有字符之间均匀分配的空间量，默认0，一般不用
line_mode | kmc行显示模式，共3种： "0"表示多行模式，显示方式同lrc，也可拖动，无倒数3秒提示 "1"表示单行模式，只显示一行歌词，如果lrc是横向模式，则kmc自动变为单行模式 "2"表示双行模式，这是kmc的默认模式
link | 表示点击链接按钮后要打开的http链接地址(一般支持CMP4特有的自动替换)
lock | 是否锁定，默认锁定不能拖动：lock="1"
margin | kmc歌词左右边距，默认0，一般不用
mask | 窗口装饰，与窗口的最底层背景相对应，其位于窗口的最顶层，一般不用，装饰层不支持鼠标事件
mask_color | 透明色(镂空色)，如: mask_color="#FF00FF" 则所有皮肤中的紫红色#FF00FF将透明显示 默认透明色为空，推荐留空以提高性能，因为png本身支持alpha通道透明度，如果不方便制作透明格式时再采用
max_button | 是否在非全屏状态显示最大化歌词按钮，默认为0不显示
max_scale | 在歌词窗口最大化时，歌词可放大的最大缩放倍数，默认为2，移动到右上角的S缩放按钮，在弹出的滑动条进行缩放
mouseEnabled | 窗口是否具有鼠标交互能力，默认为true，否则为false时将禁止鼠标交互
name | 当前皮肤名称，显示到设置面板里皮肤列表中
opened | 列表项包含子列表时，在打开时要显示的图标
playing | 列表项正在播放时要显示的图标，支持flash动画格式
preview | 皮肤预览图，将显示在cmp设置面板中，推荐不宜过大，且使用jpg格式
property | 事件发生时，要处理对象的属性，如xywh/display等 详情见CMP4窗口事件详解：http://bbs.cenfun.com/thread-11034-1-1.html
readme | 当前皮肤相关说明
rightMargin | 文本右边距，默认0，一般不用
rotation | 旋转角度，0表示不旋转，一般还支持90/-90/180，注意：旋转是在xywh定位后，以其左上顶点为圆点进行旋转，此时xywh需自己调整和计算
row_height | 自定义行高，默认为20，有image缩略图时，可自定义加高行的高度
row_mask | 行装饰，加载在每行最上层，一般不用
row_src | 行样式支持，分6个状态：横3个，表示up，over，down；竖2个，表示未选择行和选择行
shadow | 阴影滤镜，如：shadow="1,45,#FF0000,0.4,2,2,1,1" 最多11个参数："distance, angle, color, alpha, blurX, blurY, strength, quality, inner, knockout, hideObject" 详情见CMP4滤镜参数详解：http://bbs.cenfun.com/thread-11031-1-1.html
show_buttons | 是否显示视频右上角的按钮组（包括最大化时的进度条），默认显示
show_delete | 是否显示列表行的删除图标，与全局配置中的list_delete参数作用相同，默认不显示
show_icon | 是否显示列表行最前面的图标，默认显示
show_info | 是否在kmc存在这些并显示这些信息：歌名，原唱，专辑，制作者
show_tips | 鼠标移入时，延时多久显示提示文本，单位为秒，不填则不显示提示
size | 文本字体大小，默认为12
snap | 在拖动时是否自动吸附到邻近边界
src | 皮肤源地址(皮肤包中的文件全名，支持路径) 支持格式有Flash动画文件(SWF仅窗口支持)或图像文件(JPG、PNG、GIF) 背景为1个状态，按钮为4个状态(4x1,切割方式,即横向切成4份,竖排切成1份) 需要切割的仅支持图像文件，flash类型支持CMP4的API通讯
target | 事件发生时，要处理的目标，支持所有窗口以及里面的元件 详情见CMP4窗口事件详解：http://bbs.cenfun.com/thread-11034-1-1.html
表示链接打开窗口的目标，如果没有则采用全局配置link_target的值
thumb_autohide | 进度条特殊属性，设置是否自动隐藏拖动滑块，默认进度条progress自动隐藏，音量调节条volume不隐藏
thumb_icon | 滚动条特殊属性，设置滑块图标皮肤，将显示在滑块中间，默认为4条横杆的标识
thumb_src | 滑动条滑块按钮的皮肤源地址，和其他按钮一样，分4个状态(4x1)
滚动条滑块皮肤源地址，分3个状态(3x1)
time_preview | 表示最多提前多少毫秒准备歌词行，默认5000
time_sec3 | 超过多少毫秒自动显示3秒倒计时（最开始除外），默认8000
tips | 提示，在鼠标经过时显示，开关按钮可以有2个提示，用英文逗号(,)隔开 需要皮肤全局的show_tips不为0才能显示，如果采用其它语言，这里也需进行语言翻译
track_src | 滑块轨道的皮肤源地址，分2个状态(1x2)，表示背景和当前进度
滚动条滑块轨道皮肤源地址，仅1个状态
type | 事件类型，支持4种类型：open窗口打开/close窗口关闭/over鼠标移入窗口/out鼠标移出窗口 详情见CMP4窗口事件详解：http://bbs.cenfun.com/thread-11034-1-1.html
underline | 文本是否显示下划线，默认不显示
url | 当前皮肤相关链接
useHandCursor | 按钮的鼠标指针样式是否显示为手型，除了bt_link和bt_more，默认都不显示为手型
value | 事件发生时，需要对指定对象设置的值 详情见CMP4窗口事件详解：http://bbs.cenfun.com/thread-11034-1-1.html
搜索框默认提示值，如：请输入关键字
version | 当前皮肤版本号
xywh | 位置宽高参数，用于对显示元件进行定位和宽高设置 分4个数值，用英文逗号(,)隔开，如：xywh="0C, 0C, 580, 380" 分别表示对象的x横坐标、y纵坐标、w宽、h高 还能通过辅助参数实现特殊定位和宽高：C居中，R反向，P或%百分比，B边距 详情见CMP核心参数xywh图文详解：http://bbs.cenfun.com/thread-11026-1-1.html

languages节点

直接按照以下格式替换到对应语言即可，以下是简体中文，也是默认值，如果不设置也将采用此默认值
<msg id="state_undefined">未定义</msg>
<msg id="state_connecting">连接中</msg>
<msg id="state_buffering">缓冲</msg>
<msg id="state_playing">正在播放</msg>
<msg id="state_paused">已暂停</msg>
<msg id="state_stopped">已停止</msg>
<msg id="state_completed">播放完成</msg>
<msg id="state_reconnecting">重试连接</msg>
<msg id="menu_fullscreen">全屏切换</msg>
<msg id="menu_list">列表</msg>
<msg id="menu_lrc">歌词</msg>
<msg id="menu_video">视频</msg>
<msg id="menu_option">选项</msg>
<msg id="option_title_skins">设置皮肤</msg>
<msg id="option_title_about">关于程序</msg>
<msg id="option_skin_waiting">等待加载</msg>
<msg id="option_skin_loading">加载中</msg>
<msg id="option_skin_error">皮肤错误</msg>
<msg id="option_skin_version">版本</msg>
<msg id="option_skin_author">作者</msg>
<msg id="option_skin_email">邮箱</msg>
<msg id="option_skin_url">网址</msg>
<msg id="option_skin_readme">说明</msg>
<msg id="option_skin_save">保存</msg>
<msg id="option_copy_url">复制分享地址</msg>
<msg id="option_copy_embed">复制插入代码</msg>
<msg id="option_copied">已复制</msg>
<msg id="view_listing">加载列表</msg>
<msg id="view_nothing">没有找到任何信息</msg>
<msg id="view_error">错误</msg>
附英文和繁体中文的例子：http://bbs.cenfun.com/thread-11033-1-1.html

###### 一个CMP4皮肤配置格式的例子

<skin name="Default" version="2.0" author="CenFun" email="cenfun@gmail.com" url="http://bbs.cenfun.com/" readme="CMP4">
<option xywh="164C, -12C, 240, 306" src="" lock="1" display="0" group="A" fade="0">
<pane xywh="0, 0, 100P, 100P" color="#666666, #ffffff" />
<scrollbar thumb_src="scrollbar_thumb.png" button_src="scrollbar_button.png" track_src="scrollbar_track.png"/>
<bt_close xywh="-8, 0C, 8, 70" src="bt_close.png" tips="" />
</option>
<list xywh="164C, -12C, 240, 306" src="list.png" lock="1" display="1" group="A" fade="0">
<tree xywh="0, 18R, 100P, 100P" color="#666666, #ffffff" bold="0" show_delete="0" show_icon="1" />
<scrollbar thumb_src="scrollbar_thumb.png" button_src="scrollbar_button.png" track_src="scrollbar_track.png"/>
<bt_close xywh="-8, 0C, 8, 70" src="bt_close.png" tips="" />
</list>
<lrc xywh="-124C, 111C, 322, 60" src="" lock="1" display="1" group="A" shadow="1,90,#000000,1,2,2,1,1">
<text xywh="2, 2, 2B, 2B" align="center" color="#666666, #ffffff" horizontal="0" max_scale="2" max_button="0" >
<kmc line_mode="0" time_preview="5000" time_sec3="8000" show_info="1" margin="0" />
</text>
<bt_close xywh="" src="" tips="" />
</lrc>
<media xywh="-124C, -45C, 322, 242" src="media.png" lock="1" display="1" group="A">
<video xywh="1, 1, 1B, 1B" show_icon="1" show_buttons="1"/>
<bt_close xywh="" src="" tips="" />
</media>
<console xywh="0C, 0C, 580, 380" src="console.png" lock="1" display="1" group="A" snap="true">
<bt_play xywh="5, 4R, 40, 40" src="bt_play.png" tips="播放,暂停" />
<bt_stop xywh="50, 3R, 25, 25" src="bt_stop.png" tips="停止" />
<bt_prev xywh="75, 3R, 25, 25" src="bt_prev.png" tips="上一个" />
<bt_next xywh="100, 3R, 25, 25" src="bt_next.png" tips="下一个" />
<bt_mute xywh="107R, 26R, 21, 21" src="bt_mute.png" tips="静音,打开声音" hover_volume="" />
<volume xywh="10R, 31R, 89, 11" thumb_src="volume_thumb.png" track_src="volume_track.png" src="" tips="音量" />
<progress xywh="54, 32R, 390, 9" thumb_src="progress_thumb.png" track_src="progress_track.png" tips="定位" />
<bt_fullscreen xywh="105R, 3R, 25, 25" src="bt_fullscreen.png" tips="打开全屏,退出全屏" />
<status xywh="130, 7R, 185, 18" font="Arial" color="#cccccc"/>
<time xywh="133R, 7R, 130, 18" align="right" font="Arial" color="#cccccc"/>
<title xywh="26, 3, 450, 18" color="#cccccc" bold="1" shadow="1,90,#000000,1,2,2,1,1" />
</console>
<languages>
<msg id="state_connecting">连接中</msg>
<msg id="state_buffering">缓冲</msg>
<msg id="state_playing">正在播放</msg>
<msg id="state_paused">已暂停</msg>
<msg id="state_stopped">已停止</msg>
<msg id="state_completed">播放完成</msg>
</languages>
</skin>