2 double quotes are converted to 2 single quotes, an error occurs
var strAlert = "";
2 single quotes:var strAlert = ''; report error:SyntaxError: unterminated string literal
Is there a way to solve
var strAlert = "";
2 single quotes:var strAlert = ''; report error:SyntaxError: unterminated string literal
Is there a way to solve
I think, the MMExecite() method is similar to eval(), so I tested the string with eval() method and the result is the same error - unterminated string literal.
I noticed that you have unescaped "\n" symbols in the alert string. After escaping them, the code works as supposed. Here it is:
function onBtnClick( e:MouseEvent ):void{
var jsfl:String = new String();
jsfl += "var arrLayers = fl.getDocumentDOM().getTimeline().getSelectedLayers();\n var nCurrentFrame = fl.getDocumentDOM().getTimeline().currentFrame;\nalert('Make sure:\\n - the playhead is in a blank frame before your layers start.\\n - you have fully selected your layers (whilst holding SHIFT)');\nvar strOffSet = prompt('Frames to stagger your layers by?');\nvar nOffSet = 5;\nvar nFramesToAdd;\nvar strAlert = '';\ntry\n{\nnOffSet = parseInt(strOffSet);\n}\ncatch(e)\n{\nnOffSet = 5;\n}\nvar nLongestLayer = fl.getDocumentDOM().getTimeline().frameCount + nOffSet;\narrLayers.reverse();\nfor(var i=0; i < arrLayers.length; i++)\n{\nnFramesToAdd = (i+1)*nOffSet;\nfl.getDocumentDOM().getTimeline().currentLayer = arrLayers[i];\nfl.getDocumentDOM().getTimeline().insertFrames(nFramesToAdd, false, nCurrentFrame);\nnLongestLayer+=nOffSet;\n}\nnLongestLayer-=nOffSet;\nstrAlert = 'Offset ' + i + ' layers by ' + nOffSet + ' frames';\nvar arrAllLayers = fl.getDocumentDOM().getTimeline().layers;\nvar nWhereToAdd;\nfor(var j=0; j < arrAllLayers.length; j++)\n{\nif(arrAllLayers[j].frameCount < nLongestLayer)\n{\nnFramesToAdd = nLongestLayer - arrAllLayers[j].frameCount;\nnWhereToAdd = arrAllLayers[j].frameCount;\nfl.getDocumentDOM().getTimeline().currentLayer = j;\nfl.getDocumentDOM().getTimeline().insertFrames(nFramesToAdd, false, nWhereToAdd);\n}\n}\nalert(strAlert);";
MMExecute( jsfl );
}
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.