This is an automated email from the ASF dual-hosted git repository.

gregdove pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit c0b9b4340965837d35af4871b64eeb1122a4c986
Author: greg-dove <[email protected]>
AuthorDate: Thu Dec 9 16:09:53 2021 +1300

    Specific support for invalidate/commit deferred in emulation
---
 .../src/main/royale/MXRoyaleBaseClasses.as         |  1 +
 .../src/main/royale/mx/utils/RoyaleUtil.as         | 77 ++++++++++++++++++++++
 2 files changed, 78 insertions(+)

diff --git 
a/frameworks/projects/MXRoyaleBase/src/main/royale/MXRoyaleBaseClasses.as 
b/frameworks/projects/MXRoyaleBase/src/main/royale/MXRoyaleBaseClasses.as
index 5f61d01..76ba29d 100644
--- a/frameworks/projects/MXRoyaleBase/src/main/royale/MXRoyaleBaseClasses.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/MXRoyaleBaseClasses.as
@@ -268,6 +268,7 @@ internal class MXRoyaleBaseClasses
        import mx.utils.URLUtil;URLUtil;
        import mx.utils.XMLNotifier;XMLNotifier;
        import mx.utils.XMLUtil;XMLUtil;
+       import mx.utils.RoyaleUtil; RoyaleUtil;
 
 
 
diff --git 
a/frameworks/projects/MXRoyaleBase/src/main/royale/mx/utils/RoyaleUtil.as 
b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/utils/RoyaleUtil.as
new file mode 100644
index 0000000..42337a0
--- /dev/null
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/utils/RoyaleUtil.as
@@ -0,0 +1,77 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 mx.utils
+{
+
+
+COMPILE::SWF{
+
+    import flash.utils.setTimeout;
+}
+
+/**
+ *  The RoyaleUtil utility class is an all-static class
+ *  with methods for emulation support
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.9
+ */
+public class RoyaleUtil
+{      
+
+    
//--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    
//--------------------------------------------------------------------------
+    public static const DELAY:uint = 5;
+
+    private static var timeOut:Number = -1;
+    public static function 
commitDeferred(commitPropertiesFunc:Function):Boolean{
+        if (deferreds.indexOf(commitPropertiesFunc) == -1) {
+            deferreds.push(commitPropertiesFunc);
+            if (timeOut == -1) {
+                timeOut = setTimeout(onDeferral, 5);
+            }
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * @royaleignorecoercion Function
+     */
+    private static function onDeferral():void{
+        timeOut = -1;
+        var local:Array = deferreds;
+        deferreds = [];
+        var l:uint = local.length;
+        for (var i:uint = 0; i<l;i++) {
+            var commitPropertiesFunc:Function = local[i];
+            commitPropertiesFunc();
+        }
+    }
+
+    private static var deferreds:Array = [];
+
+}
+
+}

Reply via email to