This is an automated email from the ASF dual-hosted git repository. aharui pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 6f3683413e4223516cf16f80078ea36ba2a6aa2b Author: Alex Harui <[email protected]> AuthorDate: Sat Sep 22 23:08:44 2018 -0700 on JS, pre-load the CSS file --- .../org/apache/royale/utils/UIModuleUtils.as | 53 ++++++++++++++++------ 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/utils/UIModuleUtils.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/utils/UIModuleUtils.as index 760f42d..12970a1 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/utils/UIModuleUtils.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/utils/UIModuleUtils.as @@ -114,6 +114,9 @@ package org.apache.royale.utils COMPILE::JS private var jsDepsLoader:WrappedHTMLElement; + COMPILE::JS + private var jsCSSLoader:HTMLLinkElement; + /** * @private * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement @@ -145,6 +148,10 @@ package org.apache.royale.utils jsLoader.onload = loadHandler; document.body.appendChild(jsLoader); } + + jsCSSLoader = document.createElement('link') as HTMLLinkElement; + jsCSSLoader.onload = actuallyLoadModule; + document.head.appendChild(jsCSSLoader); } } @@ -177,22 +184,38 @@ package org.apache.royale.utils (host as DisplayObjectContainer).addChild(swfLoader); } } - COMPILE::JS { - if (!goog.DEBUG) - jsLoader.setAttribute("src", modulePath ? modulePath + "/" + moduleName + ".js" : - moduleName + ".js"); - else - { - // js-debug module loading requires that the __deps.js file has been tweaked - // so that the path to the module class is correct and that any - // framework js files have been copied into the same tree structure as - // the main apps framework js files - window["goog"]["ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING"] = true; - jsDepsLoader.setAttribute("src", modulePath ? modulePath + "/" + moduleName + "__deps.js" : - moduleName + "__deps.js"); - } - } + loadCSS(modulePath ? modulePath + "/" + moduleName + ".css" : + moduleName + ".css"); + } + } + + COMPILE::JS + protected function loadCSS(href:String):void + { + jsCSSLoader.id = href; + jsCSSLoader.rel = "stylesheet"; + jsCSSLoader.type = "text/css"; + jsCSSLoader.media = "all"; + jsCSSLoader.href = href; + } + + COMPILE::JS + protected function actuallyLoadModule():void + { + if (!goog.DEBUG) + jsLoader.setAttribute("src", modulePath ? modulePath + "/" + moduleName + ".js" : + moduleName + ".js"); + else + { + // js-debug module loading requires that the __deps.js file has been tweaked + // so that the path to the module class is correct and that any + // framework js files have been copied into the same tree structure as + // the main apps framework js files + window["goog"]["ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING"] = true; + jsDepsLoader.setAttribute("src", modulePath ? modulePath + "/" + moduleName + "__deps.js" : + moduleName + "__deps.js"); + } } private var moduleInstance:IUIBase;
