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 = []; + +} + +}
