使用边缘动画,我似乎无法控制我正在寻找的操作顺序。我有一个操作开关的功能,另一个测试一个或多个开关的条件。我遇到的问题是边缘一直想要在切换之前运行测试。
我可以让交换机启动测试,但遇到了我在边缘内的数组中加载对象的问题。我在想的是我需要一种预加载函数可以使用的变量的方法,但它们不需要是全局的,因为它们仅用于这一个函数。
这是我到目前为止所拥有的。
内部边缘动画:
twoPhaseSwitch('.btn1','on'); //sets up switch 1
twoPhaseSwitch('.swtch1','off'); //sets up switch 2
conditionsArray(['.btn1','.swtch1']); // tells the test script what the buttons are
在JavaScript文件中:
function twoPhaseSwitch(object,state)
{
var obj = $(object);
stage.getSymbol(obj).stop(state);
obj.data('state',state);
obj.mousedown(function(e)
{
if(obj.state == 'off')
{
stage.getSymbol(obj).stop('on');
obj.state = 'on';
obj.data('state','on');
}else{
stage.getSymbol(obj).stop('off');
obj.state = 'off';
obj.data('state','off');
};
});
};
function conditionsArray(obj)
{
var answers = ['on','on'];
// compare lengths
if (obj.length != answers.length)
return 'Argument Miscount';
var challengResults = challangeArray();
if (challengResults == true)
{
lightOn('.LED1','on');
}else if(challengResults == false)
{
lightOn('.LED1','off');
};
console.log(challengResults);
function challangeArray()
{
for (var i = 0, l=obj.length; i < l; i++)
{
if ($(obj[i]).data('state') != answers[i]) {
return false;
}
}
return true;
};
};
function lightOn(lightOBJ,state)
{
lightOBJ = $(lightOBJ);
stage.getSymbol(lightOBJ).stop(state);
};
我目前使用mousedown和mouseup伪造操作顺序,但它带来了一些非常不可接受的问题,所以我试图做到这一点。
答案 0 :(得分:1)
您是否尝试将代码包装在
中 $( document ).ready(){
your code here
}
在页面加载之前阻止任何javascript运行?