0

嘿伙计们,我在 captivate 中的点击框成功添加了这些代码行作为 javascript:

document.onkeydown = function (e) {
    if (e.keyCode == 16) {
       document.Captivate.cpEISetValue('m_VarHandle.cpCmndGotoSlide', 5);
    }
};

它做得很好,但是在第一次尝试之后,即使我在另一张幻灯片上并且我按下 shift 键,它也会转到幻灯片 5 :( 另一个问题是,如何在同一个按钮上设置 mousedown 和 onkeyup 事件。我试图实现的是如果我按 shift 键并单击单击框,则跳到下一张幻灯片。

编辑:新代码:

document.onmousedown = function (e) {
var currentSlide = document.Captivate.cpEIGetValue('m_VarHandle.cpInfoCurrentSlide');
      if(currentSlide == 5 && e.keyCode == 16){
          document.Captivate.cpEISetValue('m_VarHandle.cpCmndGotoSlide' , 5);
}
};

正如我认为的那样,当我单击它时应该触发该功能,BUUUT,不幸的是它不起作用......似乎 Captivate 无法识别 onmousedown 事件:|

重新编辑:我弄清楚如何使它工作。这是代码:

document.onkeydown = function(e) {
var currentFrame = document.Captivate.cpEIGetValue('m_VarHandle.rdinfoCurrentFrame');
var currentSlide = document.Captivate.cpEIGetValue('m_VarHandle.cpInfoCurrentSlide');

      if(currentSlide == 5 && e.keyCode == 16){
          document.Captivate.cpEISetValue('m_VarHandle.rdcmndGotoFrameAndResume' , 491);

}
};

document.onkeyup = function(e) {
var currentSlide = document.Captivate.cpEIGetValue('m_VarHandle.cpInfoCurrentSlide');

      if(currentSlide == 5){
          document.Captivate.cpEISetValue('m_VarHandle.rdcmndGotoFrameAndResume' , 485);

}
};

现在一切都很完美!这正是我想要做的......但它只在本地主机上工作......只有当我在 Captivate 中按 F12 时:(如果我尝试从 Captivate 运行导出的 swf 或 html,它会迷恋 :(((任何想法?

4

3 回答 3

0
var slide = 4;
document.onkeydown = function (e) {
    if (e.keyCode == 16) {
       slide++;
       document.Captivate.cpEISetValue('m_VarHandle.cpCmndGotoSlide', slide);
    }
};

基本上,您想增加位置(的第二个参数cpEISetValue),在您的代码中,您始终将其设置为 5。同时确保在达到最大滑块位置时将其重置。

于 2014-10-08T13:42:05.710 回答
0

如果要使用 shift 键设置单击,可以使用:

$(document).click(
  function(e){
    if(e.shiftKey){
      document.Captivate.cpEISetValue('m_VarHandle.cpCmndGotoSlide', 5);
    }
  }
);

同样适用于 ctrlKey 和 altKey

要更改页面精细,您需要一个控制变量,如下所示:

var current_page = 1;

$(document).click(
  function(e){
    if(e.shiftKey){
      current_page++
      document.Captivate.cpEISetValue('m_VarHandle.cpCmndGotoSlide', current_page);
    }
  }
);

我认为这是您需要的最终代码(您可能需要将文档更改为您正在使用的 id 或类,例如“#element_id”或“.element_class”)

于 2014-10-08T14:21:58.840 回答
0

您可以检查单击内的 SHIFT 键:

var slide = 4;
$('body').click( function (e) {
    if (e.shiftKey) {
       slide++;
       document.Captivate.cpEISetValue('m_VarHandle.cpCmndGotoSlide', slide);
    }
});

在这里检查

于 2014-10-08T14:06:48.803 回答