You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
GenFlightRec/原型系统/resources/scripts/axure/recording.js

94 lines
3.3 KiB

// ******* Recording MANAGER ******** //
$axure.internal(function($ax) {
var _recording = $ax.recording = {};
$ax.recording.recordEvent = function(element, eventInfo, axEventObject, timeStamp) {
var elementHtml = $jobj(element);
var className = elementHtml.attr('class');
var inputValue;
if(className === 'ax_checkbox') {
inputValue = elementHtml.find('#' + element + '_input')[0].checked;
eventInfo.inputType = className;
eventInfo.inputValue = inputValue;
}
if(className === 'ax_text_field') {
inputValue = elementHtml.find('#' + element + '_input').val();
eventInfo.inputType = className;
eventInfo.inputValue = inputValue;
}
var scriptId = $ax.repeater.getScriptIdFromElementId(element);
var diagramObjectPath = $ax.getPathFromScriptId(scriptId);
var form = {
recordingId: $ax.recording.recordingId,
elementID: element,
eventType: axEventObject.description,
'eventInfo': eventInfo,
// eventObject: axEventObject,
'timeStamp': timeStamp,
'path': diagramObjectPath
// ,
// 'trigger': function() {
// $ax.event.handleEvent(element, eventInfo, axEventObject);
// return false;
// }
};
$ax.messageCenter.postMessage('logEvent', form);
};
$ax.recording.maybeRecordEvent = function(element, eventInfo, axEventObject, timeStamp) {
};
$ax.recording.recordingId = "";
$ax.recording.recordingName = "";
$ax.messageCenter.addMessageListener(function(message, data) {
if(message === 'startRecording') {
$ax.recording.maybeRecordEvent = $ax.recording.recordEvent;
$ax.recording.recordingId = data.recordingId;
$ax.recording.recordingName = data.recordingName;
} else if(message === 'stopRecording') {
$ax.recording.maybeRecordEvent = function(element, eventInfo, axEventObject, timeStamp) {
};
}
else if(message === 'playEvent') {
var eventType = makeFirstLetterLower(data.eventType);
var inputElement;
var dObj = data.element === '' ? $ax.pageData.page : $ax.getObjectFromElementId(data.element);
if(!data.axEventObject) {
data.axEventObject = dObj && dObj.interactionMap && dObj.interactionMap[eventType];
}
data.eventInfo.thiswidget = $ax.getWidgetInfo(data.element);
data.eventInfo.item = $ax.getItemInfo(data.element);
if(data.eventInfo.inputType && data.eventInfo.inputType === 'ax_checkbox') {
inputElement = $jobj(data.element + '_input');
inputElement[0].checked = data.eventInfo.inputValue;
}
if(data.eventInfo.inputType && data.eventInfo.inputType === 'ax_text_field') {
inputElement = $jobj(data.element + '_input');
inputElement.val(data.eventInfo.inputValue);
}
$ax.event.handleEvent(data.element, data.eventInfo, data.axEventObject, false, true);
}
});
var makeFirstLetterLower = function(eventName) {
return eventName.substr(0, 1).toLowerCase() + eventName.substr(1);
};
});