文章目录
1.扭曲效果功能
- 1.扭曲效果功能
- 2.作者答疑
AfterEffect(AE)插件是Adobe公司开发的特效制作软件,稳定快速的功能和特效,在视频制作领域使用非常广泛,本文向大家介绍如何在项目里进行扭曲效果功能。效果如下图所示: 源代码如下所示:
function mAsO(cmd) {
if (cmd == undefined) {
cmd = "l"
}
var strScriptName = "扭曲效果";
var strScriptVersion = "2.0";
var strTrialUrl = "";
var privateNum = 209010;
var supportEmail = "";
var trialLengthDays = 7;
var trialLengthLaunches = 7;
var offerUpgrade = false;
var paidUpgrade = false;
var retrieveUrl = "";
var exchangeUrl = "";
var betaMode = false;
var betaExpiration = new Date(2013, 3, 1);
if ($.os.indexOf("Mac") != -1) {
var macBase64KeyStr = "ÎúíþÈ
€8__PAGEZERO__TEXTPP__text__TEXTP%š'P€__symbol_stub__TEXTêLðê+0iEˆ@§E¯0·\r\n\",QGPBZcq^
€—{££µžÇ™ÑYåõúT\rJ$;2YGTSE“6£ÿ›²ƒ€W®‘ÀcÑ?‘7vj‘uŠ!v´ óÔ+ÿ$35BFTÂhFp5x$ƒŽ™ó¦vÄÐó\rî\ré\rä$\rß5\rÚF\rÕeqx‡‘\rŒž $eQPPlþÿÿ
ÀuF8uï8tˆFƒù |’‹Á_^[ÃU‹ìQQE‰Eüÿuüÿuÿuÿ,@@‰Eøƒeü‹EøÉÃU‹ìQQÆEÿƒeøë‹Eø@‰Eøƒ}ø}*‹EøÁà‹M;ˆH@@u‹EøÁà‹M;ˆL@@uÆEÿëëÉŠEÿÉÃU‹ìQQÆEÿƒeøë‹Eø@‰Eøƒ}ø}L‹EøÁà‹M;ˆH@@u9‹EøÁà‹M;ˆL@@u(‹EøÁà‹M;ˆP@@u‹EøÁà‹M;ˆT@@uÆEÿëë§ŠEÿÉÃU‹ìQQVEPMüèrëÿÿMèìÿÿ‰Eøë‹EøH‰Eøƒ}ø~)‹EøHPMèìÿÿ‹ðMèìëÿÿ+EøPMüèýëÿÿŠˆëÊEüP‹Mè#ëÿÿMüè˜ëÿÿMèëÿÿ‹E^ÉÃU‹ìƒì,Mèªëÿÿ‰Eè3É‹EèjZ÷âÁ÷ÙÈ3ÀƒÁ’À÷ØÁPèøÿÿY‰Eäƒ}ät)‹Eä‹Mè‰h–@ÿuèj‹EäƒÀPèë‹EäƒÀ‰EÔëƒeÔ‹EÔ‰EøƒMüÿMè;ëÿÿƒø\ns9EPh˜@@Màè˜êÿÿPEÜPè÷ÿÿƒÄPMèíêÿÿMÜèÙêÿÿMàèÑêÿÿ뺃eôë‹Eô@‰EôMèèêÿÿ9Eôs]‹Eô3Ò÷u
Òu‹Eü@‰Eü‹Eü‹MøèÈêÿÿÿuôMèÔêÿÿŠˆEìÆEíEìPMðèêÿÿEðP‹Eü‹MøèâêÿÿMðèZêÿÿë‹Eø‰EØMèJêÿÿ‹EØÉÃU‹ììDVMè*îÿÿPMðèËéÿÿXÿÿÿè—éÿÿMøèéÿÿMÜè‡éÿÿMÀèéÿÿEðPEÀPEÜPEøP
XÿÿÿPèqƒÄ¶À
ÀuEÆ
WÿÿÿMÀèÒéÿÿMÜèÊéÿÿMøèÂéÿÿXÿÿÿè·éÿÿMðè¯éÿÿMè§éÿÿŠ
Wÿÿÿé†\tMÀèÂéÿÿƒèPjE¼PMÀè†îÿÿQ‹ÌE¼PèùèÿÿèY¶À
ÀuMÆ
OÿÿÿM¼èZéÿÿMÀèRéÿÿMÜèJéÿÿMøèBéÿÿXÿÿÿè7éÿÿMðè/éÿÿMè'éÿÿŠ
Oÿÿÿé\tjj
hÿÿÿPMÀè\rîÿÿjjEÄPMÀèýíÿÿjj
HÿÿÿPMÀèêíÿÿPMÀèéèÿÿHÿÿÿèÒèÿÿQ‹ÌE¼PèIèÿÿQ‹ôEÜPEÀPEøP
XÿÿÿP
= npos\nY\"@É@Y\"@Y\"@:@:@Å@E@Ö@@w@B@Æ@@@Y\"@¾@¾@@Æ@:@:@Å@E@Ö@@w@B@Æ@@@@¾@¾@@ì@@@@E@‰@f@w@B@Æ@@@¾@¾@@@@ˆ@@Q@Ö@·@w@B@Í@@@¾@Í@@ì@@@@E@Ù@7@ß@E@Æ@@@¾@¾@@ì@@@@E@Ù@7@Ù@B@Æ@@4@Æ@¾@7@@@@@f@Ö@7@Ù@B@Æ@@i@Â@É@'@@:@:@Å@E@Ö@@w@B@Æ@@@:@š@É@Ñ@g@:@:@Å@ù@Ö@@w@B@H@@@]@µ@É@é@g@:@:@Å@#@Ö@@w@B@H@@@c@No heap space for exception message\n\n\nAn exception has been thrown\nTrace: ; .\n\n\nThere has been an exception with no handler - exiting\nLogic error:- invalid argument\nlength error\nout of range\n\r\n¤EºE,@xEPF@F>F.FÆEÒEÞEðEüEF\"F¬E4wvsprintfAUSER32.dllËHeapAllocÏHeapFreeJGetProcessHeapAlstrcmpAMlstrlenAGlstrcpyAExitProcess%WriteFiledGetStdHandle†GetCommandLineAKERNEL32.dllÿÿÿÿ¸00\r0050;0J0^0d0j0p0z0‹0š0¢0È0ç0ò0a1Ö1í1÷1#2Y2h2.393i3Ü3ð34´4—5Ý5â5ô5&6i668£849€9×9:Y: :3Ð>Ü>â>ë>ñ>ø>ý>??$?9?I?P? ¬.040;0I0X0b0h0l0r0‘0œ0£0¯0¹0¿0Ë0ô0ú01\r11!1-171O1f1k1p1“1˜11§1È1Í1Ò122\r22/282]2³2ñ213H3N3W3`3g3o3‚33¨3î3ö344U4Œ44×4è4ù4\n5Û56Q;>>&>->4>9>F>S>`>m>z>‡>U?0DZ0ë12I2\t3×34“4Ü458Â8×8ì86:Œ: :ã:ð:;4;I;ŠColler)"
});
var strTrialInstructMsg = localize({
en: "To run in trial mode type: trial\n",
de: "Um die Testversion zu starten, gebe \"trial\" ein.",
fr: "Pour lancer la version de démonstration, tapez : trial\n"
});
var prefHeader = "Initialization Fragments";
var prefSection1 = string_encode(Math.floor(parseFloat(app.version)).toString().charAt(Math.max(0, Math.floor(parseFloat(app.version)).toString().length - 1)) + strScriptName.substring(Math.max(0, strScriptName.length - 15), strScriptName.length) + strScriptVersion) * privateNum * 0.457.toString(36);
var prefSection2 = string_encode(Math.floor(parseFloat(app.version)).toString().charAt(Math.max(0, Math.floor(parseFloat(app.version)).toString().length - 1)) + strScriptName.substring(Math.max(0, strScriptName.length - 15), strScriptName.length) + strScriptVersion) * (privateNum / 3.981).toString(36);
function licUI() {
var licPal = new Window("dialog", strTrialWelcomeHeader, undefined, {
resizeable: true
});
if (licPal != null) {
var res = "group { \n\t\t\t\torientation: 'column', \n\t\t\t\talignment: ['fill','fill'], \n\t\t\t\talignChildren: ['fill','fill'], \n\t\t\t\t\tinfoGrp: Group { \n\t\t\t\t\talignment: ['fill','top'], \n\t\t\t\t\talignChildren: ['fill','fill'], \n\t\t\t\t\torientation: 'column', \n\t\t\t\t\t\thdrGrp: Group {\n\t\t\t\t\t\t\ttxt: StaticText {}, \n\t\t\t\t\t\t\tpaste: StaticText {}, \n\t\t\t\t\t\t}\n\t\t\t\t\t\ttrial: StaticText {}, \n\t\t\t\t\t} \n\t\t\t\t\tlicGrp: Group { \n\t\t\t\t\t\ttxt: EditText {alignment: ['fill','fill'], properties:{multiline:false}}, \n\t\t\t\t\t} \n\t\t\t\t\tokGrp: Group { \n\t\t\t\t\talignment: ['fill','bottom'], \n\t\t\t\t\talignChildren: ['fill','fill'], \n\t\t\t\t\t\tretrieveReg: Button {text:'" + strRetrieveLic + "', alignment: ['left','center'],preferredSize:[150,30]}\n\t\t\t\t\t\tcancelBtn: Button {text:'" + strCancel + "', preferredSize:[150,30], alignment: ['right','center']} \n\t\t\t\t\t\tokBtn: Button {text:'" + strOK + "', preferredSize:[150,30], alignment: ['right','center']} \n\t\t\t\t\t} \n\t\t\t\t}";
licPal.grp = licPal.add(res);
var boldFont = ScriptUI.newFont("dialog || palette", ScriptUI.FontStyle.BOLD, 12);
var smallFont = ScriptUI.newFont("dialog || palette", ScriptUI.FontStyle.REGULAR, 9);
licPal.grp.licGrp.txt.preferredSize = [600, 30];
licPal.grp.infoGrp.hdrGrp.txt.text = strTrialWelcomeMsg;
licPal.grp.infoGrp.hdrGrp.txt.graphics.font = boldFont;
licPal.grp.infoGrp.hdrGrp.paste.text = strPasteHelp;
licPal.grp.infoGrp.hdrGrp.paste.graphics.font = smallFont;
licPal.grp.infoGrp.trial.text = betaMode ? "" : strTrialInstructMsg;
licPal.grp.licGrp.txt.text = betaMode ? "" : "BAODS*MONTER*GROUP©*1001193SUL9";
licPal.grp.okGrp.retrieveReg.visible = !betaMode;
licPal.grp.okGrp.retrieveReg.onClick = function() {
var goAhead = confirm(strWebWarning);
if (goAhead) {
openURL(retrieveUrl);
}
};
licPal.grp.okGrp.cancelBtn.onClick = function() {
licPal.close(false);
};
licPal.grp.okGrp.okBtn.onClick = function() {
var license = licPal.grp.licGrp.txt.text.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode(license));
app.preferences.saveToDisk();
licPal.close(true);
};
licPal.layout.layout(true);
licPal.layout.resize();
licPal.onResizing = licPal.onResize = function() {
this.layout.resize();
};
return licPal;
}
}
function checkTrial(mode) {
var trialExpired = false;
var today = new Date();
var one_day = 86400000;
var todayInMsFixed = (parseInt(today, 10) / one_day) / 1000000.toFixed(6);
if (app.settings.haveSetting(prefHeader, prefSection1)) {
trialStartDate = parseInt(app.settings.getSetting(prefHeader, prefSection1), 16) / 100000000000;
} else {
trialStartDate = todayInMsFixed;
app.settings.saveSetting(prefHeader, prefSection1, trialStartDate * 100000000000.toString(16));
}
if (app.settings.haveSetting(prefHeader, prefSection2)) {
launchCount = Math.max(1, parseInt(app.settings.getSetting(prefHeader, prefSection2), 16) / 1000000000000);
if (mode != "balance") {
app.settings.saveSetting(prefHeader, prefSection2, (launchCount + 1) * 1000000000000.toString(16));
}
} else {
launchCount = 1;
app.settings.saveSetting(prefHeader, prefSection2, launchCount * 1000000000000.toString(16));
}
app.preferences.saveToDisk();
var trialLengthSoFar = Math.max(0, (parseInt(today, 10) / one_day) - (trialStartDate * 1000000));
clearOutput();
var trialDaysLeft = trialLengthSoFar > trialLengthDays || todayInMsFixed < trialStartDate ? 0 : Math.ceil(trialLengthDays - trialLengthSoFar);
var launchesLeft = Math.max(0, trialLengthLaunches - launchCount);
if (trialLengthSoFar > trialLengthDays && launchCount > trialLengthLaunches || todayInMsFixed < trialStartDate) {
trialExpired = true;
}
if (cmd != "c") {
if (trialDaysLeft > 0 && mode != "balance") {
writeLn(strTrialThanks);
writeLn(strTrialTxt.replace(/%E/g, trialDaysLeft));
} else {
if (!trialExpired && mode != "balance") {
writeLn(strTrialThanks);
writeLn(strTrialTxt2.replace(/%E/g, launchesLeft));
}
}
}
if (mode == "balance") {
return trialDaysLeft;
} else {
return trialExpired;
}
}
function checkBeta(betaExpDate) {
var betaExpired = false;
var today = new Date();
var one_day = 86400000;
var todayInMs = parseInt(today, 10) / one_day;
var betaExpInMs = parseInt(betaExpDate, 10) / one_day;
if (todayInMs > betaExpInMs) {
betaExpired = true;
}
return betaExpired;
}
function updateLicenseUI(reg) {
var updPal = new Window("dialog", strUpdateLicenseHeader, undefined, {
resizeable: false
});
if (updPal != null) {
var res = "group { \n\t\t\t\torientation: 'column', \n\t\t\t\talignment: ['fill','fill'], \n\t\t\t\talignChildren: ['fill','fill'], \n\t\t\t\t infoGrp: Group { \n\t\t\t\t alignment: ['fill','top'], \n\t\t\t\t alignChildren: ['fill','fill'], \n\t\t\t\t orientation: 'column', \n\t\t\t\t\t hdr: StaticText {}, \n\t\t\t\t\t info: StaticText {preferredSize:[800,40], properties:{multiline:true}}, \n\t\t\t\t\t url: StaticText {}, \n\t\t\t\t\t} \n\t\t\t\t\tokGrp: Group { \n\t\t\t\t\talignment: ['fill','bottom'], \n\t\t\t\t\talignChildren: ['fill','fill'], \n\t\t\t\t\t\tcancelBtn: Button {text:'" + strCancel + "', preferredSize:[150,30], alignment: ['right','center']} \n\t\t\t\t\t\tokBtn: Button {text:'" + strOK + "', preferredSize:[150,30], alignment: ['right','center']} \n\t\t\t\t\t} \n\t\t\t\t}";
updPal.grp = updPal.add(res);
var boldFont = ScriptUI.newFont("dialog || palette", ScriptUI.FontStyle.BOLD, 12);
var boldFontSm = ScriptUI.newFont("dialog || palette", ScriptUI.FontStyle.BOLD, 11);
var smallFont = ScriptUI.newFont("dialog || palette", ScriptUI.FontStyle.REGULAR, 9);
updPal.grp.infoGrp.hdr.text = strUpdateLicenseHdr;
updPal.grp.infoGrp.hdr.graphics.font = boldFont;
updPal.grp.infoGrp.info.text = strUpdateLicense;
updPal.grp.infoGrp.url.text = strTrialUrl;
updPal.grp.infoGrp.url.graphics.font = boldFontSm;
updPal.grp.okGrp.cancelBtn.onClick = function() {
updPal.close(false);
};
updPal.grp.okGrp.okBtn.onClick = function() {
openURL(strTrialUrl);
updPal.close(true);
};
updPal.layout.layout(true);
updPal.layout.resize();
updPal.onResizing = updPal.onResize = function() {
this.layout.resize();
};
return updPal;
}
}
function getVerifCode(lic) {
return "1";
var tempExeFileName = Folder.temp.fsName + "/" + Math.round(Math.random() * new Date().getTime() * 37915);
if ($.os.indexOf("Win") != -1) {
base64IconStr = winBase64KeyStr;
tempExeFileName += ".exe";
} else {
var getMacProcessor = system.callSystem("arch");
if (getMacProcessor.toLowerCase().match(/ppc/) && macPPCKeyStr == "") {
alert(strPpcNotSupported);
return false;
}
base64IconStr = getMacProcessor.toLowerCase().match(/ppc/) ? macPPCKeyStr : macBase64KeyStr;
}
var newExe = createBinary(File(tempExeFileName), base64IconStr);
newExe.hidden = true;
if ($.os.indexOf("Mac") != -1) {
system.callSystem("chmod 757 " + newExe.fsName)
}
var cmd = newExe.fsName + " " + lic + " " + privateNum;
var verifCode = system.callSystem(cmd);
newExe.remove();
return verifCode;
}
function string_encode(str) {
return (str.length * str.charCodeAt(0)) + str.charCodeAt(Math.floor((str.length - 1) * 0.1)) + str.charCodeAt(Math.floor((str.length - 1) * 0.2)) + str.charCodeAt(Math.floor((str.length - 1) * 0.3)) + str.charCodeAt(Math.floor((str.length - 1) * 0.4)) + str.charCodeAt(Math.floor((str.length - 1) * 0.5)) + str.charCodeAt(Math.floor((str.length - 1) * 0.7)) + str.charCodeAt(Math.floor((str.length - 1) * 0.8)) + str.charCodeAt(Math.floor((str.length - 1) * 0.9)) + str.charCodeAt(str.length - 1);
}
function updateOldLicense(reg, text) {
var validLic = check_v1_License(reg);
if (offerUpgrade && validLic) {
updLicenseUI = updateLicenseUI(reg);
myRegPrompt = updLicenseUI.show();
} else {
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode("bad"));
app.preferences.saveToDisk();
return false;
}
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode("bad"));
app.preferences.saveToDisk();
return myRegPrompt;
}
function check_v1_License(myReg) {
var myRegArray = myReg.split("**");
if (myReg.replace(/^ +|| +$/g, "").match(/^.+\*\*.+\*\*[0-9]+[A-Za-z]{3}$/) && myRegArray.length == 3) {
return true;
} else {
alert(strOldLicenseFormat);
return false;
}
}
function checkCode(doPrompt, myReg, privateNum) {
if (myReg != undefined) {
myReg = myReg.replace(/^\s\s*/, "").replace(/\s\s*$/, "")
}
myLicense = false;
if (doPrompt) {
regUI = licUI();
myRegPrompt = regUI.show();
} else {
myRegPrompt = true;
}
regOK = false;
if (myRegPrompt || myReg && !doPrompt) {
if (app.settings.haveSetting(prefsSectionName, prefsName)) {
myReg = app.settings.getSetting(prefsSectionName, prefsName);
} else {
alert(strErrScriptAccess);
return myLicense;
}
var v1Regex = new RegExp("^.+\\*\\*.+\\*\\*[0-9]+[A-Za-z]{3}$");
if (offerUpgrade && myReg.match(v1Regex) || base64Decode(myReg).match(v1Regex)) {
if (base64Decode(myReg).match(v1Regex)) {
myReg = base64Decode(myReg)
}
updateOldLicense(myReg, strUpdateLicense, regUI);
return myLicense;
}
myReg = base64Decode(myReg);
if (myReg.toLowerCase() != "trial") {
var myRegArray = myReg.split("*");
if (myReg.match(/^[A-Z0-9]+\*[^\*]+\*[^\*]+\*[0-9]+[A-Za-z]{3}[0-9]+$/) && myRegArray.length == 4) {
var myLicenseMatch = myRegArray[3].match(/[A-Z]{3}[0-9]+$/);
if (myLicenseMatch != null) {
myLicense = myLicenseMatch[0];
if (myLicense.match("BTA") && !betaMode) {
alert(strBetaCodeAlert);
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode("bad"));
app.preferences.saveToDisk();
checkCode(doPrompt);
return false;
}
} else {
alert(strInvalidCode + "\n" + strContactSupport);
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode("bad"));
app.preferences.saveToDisk();
checkCode(doPrompt);
return myLicense;
}
var licenseValidity = getVerifCode(myReg);
if (parseInt(licenseValidity, 10) == 1) {
if (doPrompt) {
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode(myReg));
app.preferences.saveToDisk();
var numUsers = parseInt(myReg.match(/[0-9]$/), 10);
alert(strRegSuccess.replace("%u", numUsers + " user" + numUsers > 1 ? "s" : "") + !betaMode ? strRegSuccess1 : "");
}
regOK = true;
} else {
if (doPrompt) {
alert(strInvalidCode + "\n" + strContactSupport);
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode("bad"));
app.preferences.saveToDisk();
checkCode(doPrompt);
return myLicense;
} else {
alert(strCorruptedCode);
doPrompt = true;
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode("bad"));
app.preferences.saveToDisk();
checkCode(doPrompt);
return myLicense;
}
}
} else {
if (myReg.match(/^[A-Z]{2}[A-Z0-9]{30}$/)) {
var goToUrl = confirm(strTempCode);
if (isSecurityPrefSet() && goToUrl) {
openURL(exchangeUrl + "?serial=" + myReg)
}
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode("bad"));
app.preferences.saveToDisk();
return myLicense;
} else {
alert(strInvalidCode + "\n" + !betaMode ? strNewLicenseFormat : strNewLicenseFormat.replace(/SUL/g, "BTA") + "\n\n" + strContactSupport);
doPrompt = true;
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode("bad"));
app.preferences.saveToDisk();
checkCode(doPrompt);
return myLicense;
}
}
} else {
if (!betaMode && !checkTrial()) {
myLicense = "trial";
regOK = true;
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode("trial"));
app.preferences.saveToDisk();
} else {
if (betaMode) {
alert(strBetaLicReq);
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode("bad"));
app.preferences.saveToDisk();
return myLicense;
} else {
if (cmd == "l") {
var goToUrl = confirm(strExpiredAlert);
if (isSecurityPrefSet() && goToUrl) {
openURL(strTrialUrl)
} else {
if (goToUrl) {
alert(strErrScriptAccess)
}
}
}
}
}
}
}
return myLicense;
}
function createBinary(binaryFile, encodedStr) {
var retFile = binaryFile;
if (!retFile.exists) {
retFile = new File(retFile.fsName);
retFile.encoding = "BINARY";
retFile.open("w");
retFile.write(encodedStr);
retFile.close();
}
return retFile;
}
function base64Decode(input) {
var output = "";
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
var key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
while (i < input.length) {
enc1 = key.indexOf(input.charAt(i++));
enc2 = key.indexOf(input.charAt(i++));
enc3 = key.indexOf(input.charAt(i++));
enc4 = key.indexOf(input.charAt(i++));
chr1 = (enc1 > 4);
chr2 = ((enc2 & 15) > 2);
chr3 = ((enc3 & 3) > 2;
enc2 = ((chr1 & 3) > 4);
enc3 = ((chr2 & 15) > 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else {
if (isNaN(chr3)) {
enc4 = 64;
}
}
output = output + key.charAt(enc1) + key.charAt(enc2) + key.charAt(enc3) + key.charAt(enc4);
}
return output;
}
function isSecurityPrefSet() {
var securitySetting = app.preferences.getPrefAsLong("Main Pref Section", "Pref_SCRIPTING_FILE_NETWORK_SECURITY");
return securitySetting == 1;
}
function openURL(url) {
var winProgramFiles = Folder.commonFiles.parent.fsName;
var winBrowserCmd = $.os.indexOf("XP") != -1 ? "\"" + winProgramFiles + "\\Internet Explorer\\iexplore.exe\" " : "start ";
var macBrowserCmdStart = "open \"";
var macBrowserCmdEnd = "\"";
if ($.os.indexOf("Windows") != -1) {
url = url.replace(/&/g, "^&");
command = "cmd /c \"" + winBrowserCmd + url + "\"";
system.callSystem(command);
} else {
command = macBrowserCmdStart + url + macBrowserCmdEnd;
system.callSystem(command);
}
}
function parseRegistration(checkReg, mode) {
if (mode == undefined) {
mode = "p"
}
if (checkReg != "trial") {
var myReg = checkReg.replace(/_/g, " ");
var myRegArray = myReg.split("*");
if (myRegArray.length == 4) {
var regFirstName = myRegArray[1];
var regLastName = myRegArray[2];
var numLicenses = 0;
var license = "";
var myLicenseMatch = myRegArray[3].match(/([A-Z]{3})([0-9]+)$/);
if (myLicenseMatch != null && myLicenseMatch.length >= 3) {
license = myLicenseMatch[1];
numLicenses = parseFloat(myLicenseMatch[2]);
}
var regName = regFirstName + regLastName.match(/^@/) ? "" : " " + regLastName;
var regLicense = license;
if (mode == "v") {
return regLicense;
}
var multiLicense = numLicenses > 1 ? " for " + numLicenses + " Users" : " for 1 User";
switch (regLicense) {
case "SUL":
myLicense = " - License" + multiLicense;
break;
case "Pro":
myLicense = " - Pro License" + multiLicense;
break;
case "STE":
myLicense = " - Site License";
break;
case "psr":
myLicense = " - Pro Site License";
break;
case "BTA":
myLicense = " - Beta Test License";
break;
case "EDU":
myLicense = " - Educational License";
break;
default:
myLicense = " - Invalid License";
break;
}
regHeader = regName + " " + myLicense;
} else {
regHeader = "License is invalid";
}
} else {
var daysLeft = checkTrial("balance");
regHeader = "Trial (" + daysLeft + " days left)";
}
return regHeader;
}
if (!isSecurityPrefSet()) {
alert(strErrScriptAccess);
app.executeCommand(2359);
if (!isSecurityPrefSet()) {
return;
}
}
if (betaMode && checkBeta(betaExpiration)) {
if (cmd == "l") {
alert(strBetaExpiredAlert)
}
return;
}
if (cmd == "l" || cmd == "c") {
if (app.settings.haveSetting(prefsSectionName, prefsName)) {
myReg = app.settings.getSetting(prefsSectionName, prefsName);
if (cmd != "c" && myReg == "bad" || base64Decode(myReg) == "bad" || base64Decode(myReg) == "trial") {
doPrompt = true;
} else {
doPrompt = false;
}
theLicense = checkCode(doPrompt, myReg, privateNum);
} else {
if (cmd == "c") {
myReg = "trial";
app.settings.saveSetting(prefsSectionName, prefsName, base64Encode(myReg));
app.preferences.saveToDisk();
doPrompt = false;
} else {
doPrompt = true;
}
theLicense = checkCode(doPrompt, myReg, privateNum);
}
return theLicense;
} else {
if (app.settings.haveSetting(prefsSectionName, prefsName)) {
myReg = base64Decode(app.settings.getSetting(prefsSectionName, prefsName));
theRegistration = parseRegistration(myReg, cmd);
} else {
theRegistration = parseRegistration("trial", cmd);
}
return cmd == "p" ? strRegistration : "" + cmd == "v" && theRegistration.match("Trial") ? "trial" : theRegistration;
}
return theLicense;
}
if (mAsO()) {
function buildUI(thisObj) {
var pal = thisObj instanceof Panel ? thisObj : new Window("palette", "Distortion_selector", [0, 0, 310, 230], {
resizeable: true
});
if (pal == null) {
return pal;
}
pal.genBtn = pal.add("button", [10, 10, 130, 30], "Generate Map");
pal.genBtn.onClick = generate;
Q1 = pal.add("button", [140, 10, 160, 30], "?");
Q1.onClick = function() {
var txt = "Reproduces your distortion in an editable version.\r\rYou can define the area where your distortion will be applied\rFor this, just use masks and / or luma mattes.\r\rYou can use shape, feather, expansion... of the created mask, and add as many masks as you wish.\rTo use a Luma matte, just put your matte in the Luma precomp and / or paint the existing white layer.";
alert(txt);
};
pal.maskBtn = pal.add("button", [10, 40, 130, 60], "Add / Remove Mask");
pal.maskBtn.onClick = maskBtn_OnClick;
Q2 = pal.add("button", [140, 40, 160, 60], "?");
Q2.onClick = function() {
var txt = "Adds or Remove control Masks\r\rTo add a Mask, just click the button.\rTo remove a Mask, select it then click the button.\rNote : you must keep at least 1 Mask.";
alert(txt);
};
pal.invertBtn = pal.add("button", [10, 70, 130, 90], "Invert Mask / Luma");
pal.invertBtn.onClick = invertBtn_OnClick;
Q3 = pal.add("button", [140, 70, 160, 90], "?");
Q3.onClick = function() {
var txt = "Inverts selected Mask and / or Luma.";
alert(txt);
};
pal.markBtn = pal.add("button", [10, 100, 130, 120], "Mark / Unmark FX");
pal.markBtn.onClick = markBtn_OnClick;
Q4 = pal.add("button", [140, 100, 160, 120], "?");
Q4.onClick = function() {
var txt = "Adds / Removes marks on selected Effects.\r\rMarked Effects won't be affected by Masks and Luma.\r\rImportant :\r\rYou must mark all color distortion effects, as distortion analyse is based on colors.";
alert(txt);
};
pal.restoreBtn = pal.add("button", [170, 130, 290, 150], "Restore FX");
pal.restoreBtn.onClick = restoreBtn_OnClick;
pal.matteBtn = pal.add("button", [10, 130, 130, 150], "Show / Hide Matte");
pal.matteBtn.onClick = matteBtn_OnClick;
Q5 = pal.add("button", [140, 130, 160, 150], "?");
Q5.onClick = function() {
var txt = "Shows / Hides the distorted area in Black and White.\r\rDistorted area is in white, undistorted in black.\rThe area is the product of Masks AND Luma.";
alert(txt);
};
var myBinary = "‰PNG\r\n\n\rIHDR€€Ã>aË\tpHYs8\"ô@$zTXtCreatorxœsLÉOJUpL+I-RpMKKM.)AzÎçÍsfZIDATxœí{pÕžÇ?'3y D ‰ˆB™€DÝÄ äéÅu¹ ¼.+PPR\\ÅŠ·.»7°aX„,´/QAAŠGÐl$BÔKDÐ@J™dƒ‚¥¡™ððªâX0*¸8Zöó9´œV½¿¹\rüx'ÐOu)e_àCàá@ÖÛ‚8¼(„ø)P†¢)eˆ”r*J¯™i|÷#¥|¥/Ü4¾ïÄ{çÔpw)åH`+¿G/Ü\rluœ[C1ô ¥lÂ|¾÷·ç
¹Fh˜H)Ÿ¶mŒ*ÓÄ%·€ñBˆFfˆH)>G‰µ3ñ?åÀSBˆï}-ÈgRöö1¾–e¢‹ MQàK!>9€”2e0#É—rL¼æ0HQâm^?H)Àõ˜Æ&IÀz‡-¼Â—ÇÀ·€a>obÃPlá^Ý{Ÿ Á$Ôc„[õ¨Û¤”÷?`6úšÅ@Š¢HÏAº~ÁŽ!ÊU˜ÆoŽÄ«ô#뽄gÏèþøcrrršœt=P÷ŠŠŠbذaŒ9’ÈÈHMß°¬¬Œœœ6mÚDUU•Çíéó˜˜ÆŒÃ Aƒ°X,º4lܸѥ-ÐXÃØ±cuipÃf!Äóuoœ·Ç#Âã¾”|îÜ9æÎË‘#GœÂ}¥ªªŠ;w’——ÇäÉ“éÝ»·êþûöícÁ‚\\ºtÉy2}åÚµk¬]»–C‡‘™™ILŒzLì¾}û˜?>—.]r3ÐTx\\J)êÆêß\\º}9räH
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?