Hi Hugo, Until now I didn't have that case. I think all depends on how JS libraries are done. Some libraries are very well done, while others are a real nightmare.
In this case the approach I'll try (if possible since I don't know the internals) is to create a class extern definition per script (or js "class") and then expose an API in AS3 that handle the integration (if needed) or just use each one in the right way. I always try to make JS as OOP as possible by making the externs to have APIs more near to the AS3 way if possible. Have that sense? El vie., 2 oct. 2020 a las 13:26, Hugo Ferreira (<[email protected]>) escribió: > > //////////////////////////////////////////////////////////////////////////////// > // > // Licensed to the Apache Software Foundation (ASF) under one or more > // contributor license agreements. See the NOTICE file distributed with > // this work for additional information regarding copyright ownership. > // The ASF licenses this file to You under the Apache License, Version 2.0 > // (the "License"); you may not use this file except in compliance with > // the License. You may obtain a copy of the License at > // > // http://www.apache.org/licenses/LICENSE-2.0 > // > // Unless required by applicable law or agreed to in writing, software > // distributed under the License is distributed on an "AS IS" BASIS, > // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > // See the License for the specific language governing permissions and > // limitations under the License. > // > > //////////////////////////////////////////////////////////////////////////////// > package > { > /** > * @externs > */ > COMPILE::JS > public class StimulsoftReports > { > /** > * <inject_script> > * var script = document.createElement("script"); > * script.setAttribute("src", > "resources/stimulsoftreports/stimulsoft.reports.js"); > * document.head.appendChild(script); > * window.onload = function() > * { > * var script = document.createElement("script"); > * script.setAttribute("src", > "resources/stimulsoftreports/stimulsoft.viewer.js"); > * document.head.appendChild(script); > * } > * var link = document.createElement("link"); > * link.setAttribute("rel", "stylesheet"); > * link.setAttribute("href", > "resources/stimulsoftreports/stimulsoft.viewer.office2013.whiteblue.css"); > * document.head.appendChild(link); > * </inject_script> > */ > public function StimulsoftReports(){} > > public static function loadReport(renderArea:Element, > reportDefinition:String):void {} > } > } > > Notice in the example the second library stimulsoft.viewer.js > This second library depends on the first one so I add this library after > load. > > I don't know if there is a better way or this workaround it's in fact the > only way. > > Another approach maybe is to have a JS that loads this 2 libraries and > inject this only JS file (I didn't test this theorical approach). > > Carlos Rovira <[email protected]> escreveu no dia sexta, 2/10/2020 > à(s) 12:15: > > > Hi Hugo, > > > > what do you mean with "Inject"? (I guess is not referring to Crux Inject > > metadata) > > > > El vie., 2 oct. 2020 a las 10:11, Hugo Ferreira (<[email protected] > >) > > escribió: > > > > > Hi, > > > > > > I have 2 JS libraries to inject as externs. > > > Library 1 has no dependecies. > > > Library 2 depends on library 1. > > > > > > If I inject library 1 and then library 2, I get an error on console. > > > > > > The workaround that I find was: > > > On my JS injections block: > > > Add library 1 > > > On window.onload = function() add library 2. > > > > > > This is thw way to go or there is a better way to do this ? > > > > > > > > > -- > > Carlos Rovira > > http://about.me/carlosrovira > > > -- Carlos Rovira http://about.me/carlosrovira
