2.7.1 UI界面


UI界面

UI界面是指在场景上添加UI效果展示。包括状态栏,字幕,罗盘,LOGO,提示文字(TIPS)、中间十字光标等。它们都是通过响应器对象实现的。

UI界面主要包括添加(创建)、更新和删除3种操作。

下图是UI界面效果:

  

代码调用示例

Javascript调用

var resCompass;
//添加UI控件响应器
function addResponser() {
    var mySelect = document.getElementById("Select");
    var value = mySelect.options[mySelect.selectedIndex].value;
    if(value == "UILogoResponser"){
        addUILogoResponser();
    }else if(value == "UICrossResponser"){
        addUICrossResponser();
    }else if(value == "UICompassResponser"){
        addUICompassResponser();
    }else if(value == "UITipsResponser"){
        addUITipResponser();
    }else if(value == "UIStateResponser"){
        addUIStateResponser();
    }else if(value == "UICaptionResponser"){
        addUICaptionResponser();
    }else if(value == "UIRectangleResponser"){
        AddRectangle();
    }else if(value == "UIMouseResponser"){
        AddResMouse();
    }else if(value == "UICompassExResponser"){
        AddResCompassEx();
    }
}

//移除指定UI控件响应器
function deleteResponser() {
    var mySelect = document.getElementById("Select");
    var value = mySelect.options[mySelect.selectedIndex].value;
    map.RemoveResponser(value);//移除响应器
}

//添加Logo响应器
function addUILogoResponser(){
    var resp = map.CreateResponserOptions("UILogoResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("TransX", "0");//当前Logo位置偏移X坐标,默认值为0,正为屏幕向右,负为屏幕向左
    resp.AddConfig("TransY", "0");//当前Logo位置偏移y坐标,默认值为0,正为屏幕向上,负为屏幕向下
    resLogo = map.CreateResponser("UILogoResponser", resp);//创建响应器对象。UILogoResponser代表Logo响应器
    map.AddResponser(resLogo);//添加响应器对象
}
//添加中心十字标响应器
function addUICrossResponser(){
    var resp = map.CreateResponserOptions("UICrossResponser");//创建响应器配置对象,参数任意名称
    resCross = map.CreateResponser("UICrossResponser", resp);//创建响应器对象。UICrossResponser代表中心十字标响应器
    map.AddResponser(resCross);//添加响应器对象
}

//添加罗盘响应器
function addUICompassResponser(){
    var resp = map.CreateResponserOptions("UICompassResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("Visible", "true");//设置罗盘响应器显隐状态。特别注意,罗盘响应器因为内部的关系,已经默认创建,外部需要通过更新配置接口设置显隐状态,而不是通过添加的方式
    resp.AddConfig("TransX", "0");//当前罗盘位置偏移X坐标,右为正,默认值为0
    resp.AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正,默认值为0
    resCompass = map.CreateResponser("UICompassResponser", resp);//创建响应器对象。UICompassResponser代表罗盘响应器
    map.AddResponser(resCompass);//更新罗盘响应器配置,这里必须这么处理
}
//添加提示文字响应器
function addUITipResponser(){
    var resp = map.CreateResponserOptions("UITipsResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\simhei.ttf");//字体路径
    resp.AddConfig("TextSize", "6");//提示文字大小
    resp.AddConfig("TextColor", "1.0, 0.0, 0.0");//提示文字颜色
    resTips = map.CreateResponser("UITipsResponser", resp);//创建响应器对象。UITipsResponser代表文字提示响应器
    map.AddResponser(resTips);//添加响应器对象
}
//添加状态栏响应器
function addUIStateResponser() {
    var resp = map.CreateResponserOptions("UIStateResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体格式文件路径
    resp.AddConfig("TextSize", "8");//文字大小
    resp.AddConfig("TextColor", "0.7, 0.7, 0.0");//文字颜色
    resp.AddConfig("StateCurrent", "true");//当前视点信息开关
    resp.AddConfig("StateMouse", "true");//当前鼠标信息开关
    resp.AddConfig("StateHeight", "true");//当前高度信息开关
    //resp.AddConfig("CurrentShow", "中心视点: ");//中心视点文字 可选配置
    //resp.AddConfig("MouseShow", " 鼠标位置:");//鼠标位置文字 可选配置
    //resp.AddConfig("LonShow", " 经度: ");//经度文字 可选配置
    //resp.AddConfig("LatShow", " 纬度: ");//纬度文字 可选配置
    //resp.AddConfig("HeightShow", " 高程:");//高程文字 可选配置
    resState = map.CreateResponser("UIStateResponser", resp);//创建响应器对象。UIStateResponser代表状态栏响应器
    map.AddResponser(resState);//添加响应器对象
}
//添加字幕响应器
function addUICaptionResponser() {
    var resp = map.CreateResponserOptions("UICaptionResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("Deriction", "up");//字幕运动方向:left-向左,right-向右,up-向上,down-向下
    resp.AddConfig("Content", "字幕字幕字幕字幕字幕字幕字幕字幕");//字幕内容
    resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体路径
    resp.AddConfig("TextSize", "10");//字体大小
    resp.AddConfig("PlaySpeed", "2");//字幕播放速度(像素/帧)
    resp.AddConfig("PlayTimes", "2");//字幕播放次数(次)
    resp.AddConfig("PlayLength", "400");//字幕播放长度(像素)
    resp.AddConfig("StartPosition", "500,300,0");//字幕播放起始位置(屏幕坐标)
    resp.AddConfig("TextColor", "1,0,0");//文字颜色
    resp.AddConfig("PlayState", "false");//播放状态
    resCaption = map.CreateResponser("UICaptionResponser", resp);//创建响应器对象。UICaptionResponser代表字幕响应器
    map.AddResponser(resCaption);//添加响应器对象
}

//添加矩形响应器
function AddRectangle() {
    var resp = map.CreateResponserOptions("UIRectangleResponser");
    resp.AddConfig("LineColor", "0.0,0.0,1.0,1.0");//设置线的颜色
    resp.AddConfig("LineWidth", "2");//线宽(0-10)
    resp.AddConfig("IsDragMode", "false");//是否为拖拽模式,拖拽模式下,需要按住鼠标进行绘制,默认为false
    //下列二个配置可选
    //resp.AddConfig("IsLoad", "false");//是否预加载
    //resp.AddConfig("Points", "500,600;600,200;");//屏幕坐标,以;结尾
    resCaption = map.CreateResponser("UIRectangleResponser", resp);//
    map.AddResponser(resCaption);
}

var resMouse;
//添加鼠标响应器
function AddResMouse() {
    var resp = map.CreateResponserOptions("UIMouseResponser");//创建鼠标位置响应器配置项
    resMouse = map.CreateResponser("UIMouseResponser", resp);//创建鼠标位置响应器,名称为UIMouseResponser
    map.AddResponser(resMouse);
}

var resCompassEx;
//添加罗盘响应器Ex
function AddResCompassEx() {
    var resp = map.CreateResponserOptions("UICompassExResponser");//UIScalseCompassResponser
    resp.AddConfig("Visible", "true");//设置罗盘响应器Ex显隐状态
    resp.AddConfig("TransX", "-100");//当前罗盘位置偏移X坐标,右为正
    resp.AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正
    resCompassEx = map.CreateResponser("UICompassExResponser", resp);//创建罗盘响应器,必须为UICompassResponser
    map.AddResponser(resCompassEx);//更新罗盘响应器配置,这里必须这么处理
}

//修改响应器
function modifyUILogoResponser(){
    //注意,为了节省示例描述内容,只针对UILogo响应器做示例,其他响应器可参考修改,所需要配置参数均与其创建时需要参数一致
    var resp = map.CreateResponserOptions("UILogoResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("TransX", "-100");//当前Logo位置偏移X坐标,正为屏幕向右,负为屏幕向左
    resp.AddConfig("TransY", "100");//当前Logo位置偏移y坐标,正为屏幕向上,负为屏幕向下
    resLogo.UpdateResponserOptions(resp);//更新响应器配置项
}

C++调用

BaseObjectCOMLib::IResponserObjectPtr resCompass;//罗盘响应器对象
BaseObjectCOMLib::IResponserObjectPtr resLogo;//Logo响应器对象
CComboBox m_combo;//下拉框对象
std::string value;//下拉框内容
//添加Logo响应器
void Cf6c0UIDlg::addUILogoResponser()
{
    ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UILogoResponser");//创建响应器配置,参数任意名称
    resp->AddConfig("TransX", "0");//当前Logo位置偏移X坐标,默认值为0,正为屏幕向右,负为屏幕向左
    resp->AddConfig("TransY", "0");//当前Logo位置偏移y坐标,默认值为0,正为屏幕向上,负为屏幕向下
    resLogo = map->CreateResponser("UILogoResponser", resp);//创建响应器对象,UILogoResponser代表Logo响应器
    map->AddResponser(resLogo);//添加响应器对象
}

//添加中心十字标响应器
void Cf6c0UIDlg::addUICrossResponser()
{
    ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UICrossResponser");//创建响应器配置,参数任意名称
    BaseObjectCOMLib::IResponserObjectPtr resCross = map->CreateResponser("UICrossResponser", resp);//创建响应器对象,UICrossResponser代表中心十字标响应器
    map->AddResponser(resCross);//添加响应器对象
}

//添加罗盘响应器
void Cf6c0UIDlg::addUICompassResponser()
{
    ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UICompassResponser");//创建响应器配置,参数任意名称
    resp->AddConfig("Visible", "true");//设置罗盘响应器显隐状态。特别注意,罗盘响应器因为内部的关系,已经默认创建,外部需要通过更新配置接口设置显隐状态,而不是通过添加的方式
    resp->AddConfig("TransX", "0");//当前罗盘位置偏移X坐标,右为正,默认值为0
    resp->AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正,默认值为0
    resCompass = map->CreateResponser("UICompassResponser", resp);//创建响应器对象,UICompassResponser代表罗盘响应器
    map->AddResponser(resCompass);//更新罗盘响应器配置,这里必须这么处理
}

//添加提示文字响应器
void Cf6c0UIDlg::addUITipResponser()
{
    ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UITipsResponser");//创建响应器配置,参数任意名称
    resp->AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\simhei.ttf");//字体路径
    resp->AddConfig("TextSize", "6");//提示文字大小
    resp->AddConfig("TextColor", "1.0, 0.0, 0.0");//提示文字颜色
    BaseObjectCOMLib::IResponserObjectPtr resTips = map->CreateResponser("UITipsResponser", resp);//创建响应器对象,UITipsResponser代表文字提示响应器
    map->AddResponser(resTips);//添加响应器对象
}

//状态栏响应器
void Cf6c0UIDlg::addUIStateResponser()
{
    ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UIStateResponser");//创建响应器配置,参数任意名称
    resp->AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体格式文件路径
    resp->AddConfig("TextSize", "8");//文字大小
    resp->AddConfig("TextColor", "0.7, 0.7, 0.0");//文字颜色
    resp->AddConfig("StateCurrent", "true");//当前视点信息开关
    resp->AddConfig("StateMouse", "true");//当前鼠标信息开关
    resp->AddConfig("StateHeight", "true");//当前高度信息开关
    //resp->AddConfig("CurrentShow", "中心视点: ");//中心视点文字 可选配置
    //resp->AddConfig("MouseShow", " 鼠标位置:");//鼠标位置文字 可选配置
    //resp->AddConfig("LonShow", " 经度: ");//经度文字 可选配置
    //resp->AddConfig("LatShow", " 纬度: ");//纬度文字 可选配置
    //resp->AddConfig("HeightShow", " 高程:");//高程文字 可选配置
    BaseObjectCOMLib::IResponserObjectPtr resState = map->CreateResponser("UIStateResponser", resp);//创建响应器对象,UIStateResponser代表状态栏响应器
    map->AddResponser(resState);//添加响应器对象
}

void Cf6c0UIDlg::addUICaptionResponser()
{
    ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UICaptionResponser");//创建响应器配置,参数任意名称
    resp->AddConfig("Deriction", "up");//字幕运动方向:left-向左,right-向右,up-向上,down-向下
    resp->AddConfig("Content", "字幕字幕字幕字幕字幕字幕字幕字幕");//字幕内容
    resp->AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体路径
    resp->AddConfig("TextSize", "10");//字体大小
    resp->AddConfig("PlaySpeed", "2");//字幕播放速度(像素/帧)
    resp->AddConfig("PlayTimes", "2");//字幕播放次数(次)
    resp->AddConfig("PlayLength", "400");//字幕播放长度(像素)
    resp->AddConfig("StartPosition", "500,300,0");//字幕播放起始位置(屏幕坐标)
    resp->AddConfig("TextColor", "1,0,0");//文字颜色
    resp->AddConfig("PlayState", "false");//播放状态
    BaseObjectCOMLib::IResponserObjectPtr resCaption = map->CreateResponser("UICaptionResponser", resp);//创建响应器对象,UICaptionResponser代表字幕响应器
    map->AddResponser(resCaption);//添加响应器对象
}

void Cf6c0UIDlg::AddRectangle()
{
    ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UIRectangleResponser");
    resp->AddConfig("LineColor", "0.0,0.0,1.0,1.0");//设置线的颜色
    resp->AddConfig("LineWidth", "2");//设置线宽,1~10
    resp->AddConfig("IsDragMode", "false");//是否为拖拽模式,拖拽模式下,需要按住鼠标进行绘制,默认为false
    //下列二个配置可选
    //resp->AddConfig("IsLoad", "false");//是否预加载
    //resp->AddConfig("Points", "500,600;600,200;");//屏幕坐标,以;结尾
    BaseObjectCOMLib::IResponserObjectPtr resCaption = map->CreateResponser("UIRectangleResponser", resp);//创建响应器对象,UIRectangleResponser代表矩形绘制响应器
    map->AddResponser(resCaption);
}

void Cf6c0UIDlg::AddResMouse()
{
    ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UIMouseResponser");//创建鼠标位置响应器配置项
    BaseObjectCOMLib::IResponserObjectPtr resCaption = map->CreateResponser("UIMouseResponser", resp);//创建鼠标位置响应器,名称为UIMouseResponser
    map->AddResponser(resCaption);
}

void Cf6c0UIDlg::AddResCompassEx()
{
    ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("UICompassExResponser");//UIScalseCompassResponser
    resp->AddConfig("Visible", "true");//设置罗盘响应器Ex显隐状态
    resp->AddConfig("TransX", "-100");//当前罗盘位置偏移X坐标,右为正
    resp->AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正
    BaseObjectCOMLib::IResponserObjectPtr resCaption = map->CreateResponser("UICompassExResponser", resp);//创建罗盘响应器,必须为UICompassResponser
    map->AddResponser(resCaption);//更新罗盘响应器配置
}

//获得UI类型
void Cf6c0UIDlg::OnCbnSelchangeCombo1()
{
    CString m_paramname;
    m_combo.GetLBText(m_combo.GetCurSel(),m_paramname);
    value = CT2A(m_paramname.GetBuffer());
}

//获得下拉框内容
void Cf6c0UIDlg::OnCbnSetfocusCombo1()
{
    m_combo.ResetContent();//清空下拉框
    m_combo.AddString(L"Logo");
    m_combo.AddString(L"中心十字标");
    m_combo.AddString(L"罗盘");
    m_combo.AddString(L"提示文字");
    m_combo.AddString(L"状态栏");
    m_combo.AddString(L"字幕");
    m_combo.AddString(L"矩形绘制");
    m_combo.AddString(L"鼠标");
    m_combo.AddString(L"罗盘EX");
    m_combo.SetCurSel(-1);
}

//添加UI控件响应器
void Cf6c0UIDlg::OnBnClickedaddresponser()
{
    if(value == "Logo")
    {
        addUILogoResponser();
    }
    else if(value == "中心十字标")
    {
        addUICrossResponser();
    }
    else if(value == "罗盘")
    {
        addUICompassResponser();
    }
    else if(value == "提示文字")
    {
        addUITipResponser();
    }
    else if(value == "状态栏")
    {
        addUIStateResponser();
    }
    else if(value == "字幕")
    {
        addUICaptionResponser();
    }
    else if(value == "矩形绘制")
    {
        AddRectangle();
    }
    else if(value == "鼠标")
    {
        AddResMouse();
    }
    else if(value == "罗盘EX")
    {
        AddResCompassEx();
    }
}

//卸载UI控件响应器
void Cf6c0UIDlg::OnBnClickeddeleteresponser()
{
    if(value == "Logo")
    {
        map->RemoveResponser("UILogoResponser");//移除响应器
    }
    else if(value == "中心十字标")
    {
        map->RemoveResponser("UICrossResponser");//移除响应器
    }
    else if(value == "罗盘")
    {
        map->RemoveResponser("UICompassResponser");//移除响应器
    }
    else if(value == "提示文字")
    {
        map->RemoveResponser("UITipsResponser");//移除响应器
    }
    else if(value == "状态栏")
    {
        map->RemoveResponser("UIStateResponser");//移除响应器
    }
    else if(value == "字幕")
    {
        map->RemoveResponser("UICaptionResponser");//移除响应器
    }
    else if(value == "矩形绘制")
    {
        map->RemoveResponser("UIRectangleResponser");//移除响应器
    }
    else if(value == "鼠标")
    {
        map->RemoveResponser("UIMouseResponser");//移除响应器
    }
    else if(value == "罗盘EX")
    {
        map->RemoveResponser("UICompassExResponser");//移除响应器
    }
}

//修改Logo响应器
void Cf6c0UIDlg::OnBnClickedmodifyuilogoresponser()
{
    //注意,为了节省示例描述内容,只针对UILogo响应器做示例,其他响应器可参考修改,所需要配置参数均与其创建时需要参数一致
    ConfigOptionsCOMLib::IResponserOptionPtr resp = map->CreateResponserOptions("");//创建响应器配置,参数任意名称
    resp->AddConfig("TransX", "-100");//当前Logo位置偏移X坐标,正为屏幕向右,负为屏幕向左
    resp->AddConfig("TransY", "100");//当前Logo位置偏移y坐标,正为屏幕向上,负为屏幕向下
    resLogo->UpdateResponserOptions(resp);//更新响应器配置项
}

C#调用

IResponserObject resCompass;//罗盘响应器对象
IResponserObject resLogo;//Logo响应器对象
//添加Logo响应器
private void addUILogoResponser()
{
    var resp = map.CreateResponserOptions("UILogoResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("TransX", "0");//当前Logo位置偏移X坐标,默认值为0,正为屏幕向右,负为屏幕向左
    resp.AddConfig("TransY", "0");//当前Logo位置偏移y坐标,默认值为0,正为屏幕向上,负为屏幕向下
    resLogo = map.CreateResponser("UILogoResponser", resp);//创建响应器对象,UILogoResponser代表Logo响应器
    map.AddResponser(resLogo);//添加响应器对象
}
//添加中心十字标响应器
private void addUICrossResponser()
{
    var resp = map.CreateResponserOptions("UICrossResponser");//创建响应器配置对象,参数任意名称
    var resCross = map.CreateResponser("UICrossResponser", resp);//创建响应器对象,UICrossResponser代表中心十字标响应器
    map.AddResponser(resCross);//添加响应器对象
}
//添加罗盘响应器
private void addUICompassResponser()
{
    var resp = map.CreateResponserOptions("UICompassResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("Visible", "true");//设置罗盘响应器显隐状态。特别注意,罗盘响应器因为内部的关系,已经默认创建,外部需要通过更新配置接口设置显隐状态,而不是通过添加的方式
    resp.AddConfig("TransX", "0");//当前罗盘位置偏移X坐标,右为正,默认值为0
    resp.AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正,默认值为0
    resCompass = map.CreateResponser("UICompassResponser", resp);//创建响应器对象,UICompassResponser代表罗盘响应器
    map.AddResponser(resCompass);//更新罗盘响应器配置,这里必须这么处理
}
//添加提示文字响应器
private void addUITipResponser()
{
    var resp = map.CreateResponserOptions("UITipsResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\simhei.ttf");//字体路径
    resp.AddConfig("TextSize", "6");//提示文字大小
    resp.AddConfig("TextColor", "1.0, 0.0, 0.0");//提示文字颜色
    var resTips = map.CreateResponser("UITipsResponser", resp);//创建响应器对象,UITipsResponser代表文字提示响应器
    map.AddResponser(resTips);//添加响应器对象
}
//添加状态栏响应器
private void addUIStateResponser()
{
    var resp = map.CreateResponserOptions("UIStateResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体格式文件路径
    resp.AddConfig("TextSize", "8");//文字大小
    resp.AddConfig("TextColor", "0.7, 0.7, 0.0");//文字颜色
    resp.AddConfig("StateCurrent", "true");//当前视点信息开关
    resp.AddConfig("StateMouse", "true");//当前鼠标信息开关
    resp.AddConfig("StateHeight", "true");//当前高度信息开关
    //resp.AddConfig("CurrentShow", "中心视点: ");//中心视点文字 可选配置
    //resp.AddConfig("MouseShow", " 鼠标位置:");//鼠标位置文字 可选配置
    //resp.AddConfig("LonShow", " 经度: ");//经度文字 可选配置
    //resp.AddConfig("LatShow", " 纬度: ");//纬度文字 可选配置
    //resp.AddConfig("HeightShow", " 高程:");//高程文字 可选配置
    var resState = map.CreateResponser("UIStateResponser", resp);//创建响应器对象,UIStateResponser代表状态栏响应器
    map.AddResponser(resState);//添加响应器对象
}
//添加字幕响应器
private void addUICaptionResponser()
{
    var resp = map.CreateResponserOptions("UICaptionResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("Deriction", "up");//字幕运动方向:left-向左,right-向右,up-向上,down-向下
    resp.AddConfig("Content", "字幕字幕字幕字幕字幕字幕字幕字幕");//字幕内容
    resp.AddConfig("TextFont", "C:\\WINDOWS\\Fonts\\msyh.TTF");//字体路径
    resp.AddConfig("TextSize", "10");//字体大小
    resp.AddConfig("PlaySpeed", "2");//字幕播放速度(像素/帧)
    resp.AddConfig("PlayTimes", "2");//字幕播放次数(次)
    resp.AddConfig("PlayLength", "400");//字幕播放长度(像素)
    resp.AddConfig("StartPosition", "500,300,0");//字幕播放起始位置(屏幕坐标)
    resp.AddConfig("TextColor", "1,0,0");//文字颜色
    resp.AddConfig("PlayState", "false");//播放状态
    var resCaption = map.CreateResponser("UICaptionResponser", resp);//创建响应器对象,UICaptionResponser代表字幕响应器
    map.AddResponser(resCaption);//添加响应器对象
}

//添加鼠标响应器
private void AddResMouse()
{
    var resp = map.CreateResponserOptions("UIMouseResponser");//创建鼠标位置响应器配置项
    var resMouse = map.CreateResponser("UIMouseResponser", resp);//创建鼠标位置响应器,名称为UIMouseResponser
    map.AddResponser(resMouse);
}

//添加罗盘响应器Ex
private void AddResCompassEx()
{
    var resp = map.CreateResponserOptions("UICompassExResponser");//UIScalseCompassResponser
    resp.AddConfig("Visible", "true");//设置罗盘响应器Ex显隐状态
    resp.AddConfig("TransX", "-100");//当前罗盘位置偏移X坐标,右为正
    resp.AddConfig("TransY", "0");//当前罗盘位置偏移y坐标,上为正
    var resCompassEx = map.CreateResponser("UICompassExResponser", resp);//创建罗盘响应器,必须为UICompassResponser
    map.AddResponser(resCompassEx);//更新罗盘响应器配置,这里必须这么处理
}

//添加UI控件响应器
private void addResponser_Click(object sender, EventArgs e)
{
    Console.WriteLine("Text:" + comboBox1.SelectedItem.ToString());
    switch (comboBox1.SelectedItem.ToString())
    {
        case "Logo":
            addUILogoResponser();
            break;
        case "中心十字标":
            addUICrossResponser();
            break;
        case "罗盘":
            addUICompassResponser();
            break;
        case "提示文字":
            addUITipResponser();
            break;
        case "状态栏":
            addUIStateResponser();
            break;
        case "字幕":
            addUICaptionResponser();
            break;
        case "鼠标":
            addUICaptionResponser();
            break;
        case "罗盘EX":
            addUICaptionResponser();
            break;
    }
}
string UIValue;
//卸载UI控件响应器
private void deleteResponser_Click(object sender, EventArgs e)
{
    Console.WriteLine("Text:" + comboBox1.SelectedItem.ToString());
    switch (comboBox1.SelectedItem.ToString())
    {
        case "Logo":
            UIValue = "UILogoResponser";
            break;
        case "中心十字标":
            UIValue = "UICrossResponser";
            break;
        case "罗盘":
            UIValue = "UICompassResponser";
            break;
        case "提示文字":
            UIValue = "UITipsResponser";
            break;
        case "状态栏":
            UIValue = "UIStateResponser";
            break;
        case "字幕":
            UIValue = "UICaptionResponser";
            break;
        case "鼠标":
            UIValue = "UIMouseResponser";
            break;
        case "罗盘EX":
            UIValue = "UICompassExResponser";
            break;
    }
    map.RemoveResponser(UIValue);//移除响应器

}
//修改响应器
private void modifyUILogoResponser_Click(object sender, EventArgs e)
{
    //注意,为了节省示例描述内容,只针对UILogo响应器做示例,其他响应器可参考修改,所需要配置参数均与其创建时需要参数一致
    var resp = map.CreateResponserOptions("UILogoResponser");//创建响应器配置对象,参数任意名称
    resp.AddConfig("TransX", "-100");//当前Logo位置偏移X坐标,正为屏幕向右,负为屏幕向左
    resp.AddConfig("TransY", "100");//当前Logo位置偏移y坐标,正为屏幕向上,负为屏幕向下
    resLogo.UpdateResponserOptions(resp);//更新响应器配置项
}

results matching ""

    No results matching ""