You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2018/11/13 09:01:36 UTC

[royale-asjs] branch feature/modal created (now 1633099)

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

harbs pushed a change to branch feature/modal
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.


      at 1633099  Added Modal beads with example

This branch includes the following new commits:

     new 1633099  Added Modal beads with example

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[royale-asjs] 01/01: Added Modal beads with example

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 163309989007f5c0d205e2b169de2a2a515b6ab1
Author: Harbs <ha...@in-tools.com>
AuthorDate: Tue Nov 13 11:01:08 2018 +0200

    Added Modal beads with example
---
 examples/royale/AlertExample/asconfig.json         |  14 ++
 .../royale/AlertExample/src/main/royale/ASModal.as |  56 ++++++
 .../AlertExample/src/main/royale/AlertExample.mxml |  29 ++-
 .../AlertExample/src/main/royale/MXMLModal.mxml    |  29 +++
 .../Basic/src/main/resources/basic-manifest.xml    |   3 +
 .../main/royale/org/apache/royale/core/UIBase.as   |   4 +
 .../royale/html/beads/plugin/IModalDisplay.as      |  35 ++++
 .../royale/html/beads/plugin/ModalDisplay.as       | 191 ++++++++++++++++++
 .../royale/html/beads/plugin/ModalOverlay.as       | 215 +++++++++++++++++++++
 9 files changed, 573 insertions(+), 3 deletions(-)

diff --git a/examples/royale/AlertExample/asconfig.json b/examples/royale/AlertExample/asconfig.json
new file mode 100644
index 0000000..c8328c9
--- /dev/null
+++ b/examples/royale/AlertExample/asconfig.json
@@ -0,0 +1,14 @@
+{
+    "config": "royale",
+    "compilerOptions": {
+        "debug": false,
+        "targets": ["JSRoyale"],
+        "source-map": true
+    },
+    "copySourcePathAssets": true,
+    "additionalOptions": "-remove-circulars -js-output-optimization=skipAsCoercions",
+    "files":
+    [
+        "src/main/royale/AlertExample.mxml"
+    ]
+}
diff --git a/examples/royale/AlertExample/src/main/royale/ASModal.as b/examples/royale/AlertExample/src/main/royale/ASModal.as
new file mode 100644
index 0000000..63bd828
--- /dev/null
+++ b/examples/royale/AlertExample/src/main/royale/ASModal.as
@@ -0,0 +1,56 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+  import org.apache.royale.html.VContainer;
+  import org.apache.royale.html.beads.plugin.ModalDisplay;
+  import org.apache.royale.html.beads.plugin.ModalOverlay;
+  import org.apache.royale.html.Label;
+  import org.apache.royale.html.TextButton;
+  import org.apache.royale.events.MouseEvent;
+
+  public class ASModal extends VContainer
+  {
+    public function ASModal()
+    {
+      super();
+      this.style = {"backgroundColor":"#FFFFFF"};
+      _modal = new ModalDisplay();
+      _modal.maxWidth = 600;
+      addBead(_modal);
+      var overlay:ModalOverlay = new ModalOverlay();
+      overlay.hideOnClick = true;
+      addBead(overlay);
+      this.height = 300;
+      var text:Label = new Label();
+      text.text = "Just a Modal";
+      addElement(text);
+      var close:TextButton = new TextButton();
+      close.text = "Close";
+      close.addEventListener(MouseEvent.CLICK,function(ev:MouseEvent):void{_modal.hide()});
+      addElement(close);
+    }
+    private var _modal:ModalDisplay;
+
+    public function get modal():ModalDisplay
+    {
+    	return _modal;
+    }
+  }
+}
\ No newline at end of file
diff --git a/examples/royale/AlertExample/src/main/royale/AlertExample.mxml b/examples/royale/AlertExample/src/main/royale/AlertExample.mxml
index b9c28e2..765dc09 100644
--- a/examples/royale/AlertExample/src/main/royale/AlertExample.mxml
+++ b/examples/royale/AlertExample/src/main/royale/AlertExample.mxml
@@ -30,7 +30,26 @@ limitations under the License.
 				//alert.height = 150;
 				//alert.addEventListener("close", onShowAlertAction);
 			}
-			
+			private var modal:MXMLModal;
+			private function showMXMLModal():void{
+				if(!modal)
+				{
+					modal = new MXMLModal();
+					// beads declared via MXML are not added until it's added to parent,
+					// so we first need to add the element.
+					this.addElement(modal);
+				}
+				modal.modal.show(this);
+			}
+			private var asModal:ASModal;
+			private function showASModal():void{
+				if(!asModal){
+					asModal = new ASModal();
+					// We added the beads in the constructor,
+					// so there's no need to add it before show call show()
+				}
+				asModal.modal.show(this);
+			}
 			/*private function onShowAlertAction(event:CloseEvent):void
 			{
 				alertStatus.text = "Alert status: " + event.detail;
@@ -42,8 +61,12 @@ limitations under the License.
     </js:valuesImpl>
     <js:initialView>
         <js:View>
-        		<js:TextButton text="Show Alert" click="onBtnShowAlert(event)" 
-						   width="100" height="30"/>
+        		<js:TextButton text="Show Alert" click="onBtnShowAlert(event)"
+						   width="150" height="30"/>
+        		<js:TextButton text="Show MXMLModal" click="showMXMLModal()"
+						  x="160" width="150" height="30"/>
+        		<js:TextButton text="Show ASModal" click="showASModal()"
+						  x="320" width="150" height="30"/>
 			<js:Label id="alertStatus" width="150" height="30" text="Alert status: " y="35"/>
         </js:View>
     </js:initialView>
diff --git a/examples/royale/AlertExample/src/main/royale/MXMLModal.mxml b/examples/royale/AlertExample/src/main/royale/MXMLModal.mxml
new file mode 100644
index 0000000..f2902c1
--- /dev/null
+++ b/examples/royale/AlertExample/src/main/royale/MXMLModal.mxml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+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.
+
+-->
+<js:VContainer xmlns:fx="http://ns.adobe.com/mxml/2009"
+              xmlns:js="library://ns.apache.org/royale/basic" xmlns:html="library://ns.apache.org/royale/html" height="300" style="backgroundColor:#FFFFFF" visible="false">
+  
+  <js:beads>
+    <js:ModalDisplay id="modal" maxWidth="600"/>
+    <js:ModalOverlay hideOnClick="true"/>
+  </js:beads>
+  <js:Label width="100%" text="Just a Modal"/>
+  <js:TextButton text="Close" click="modal.hide()"/>
+</js:VContainer>
\ No newline at end of file
diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
index 5945ef0..42b30db 100644
--- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
@@ -248,4 +248,7 @@
 
     <component id="CascadingMenuFactory" class="org.apache.royale.html.beads.CascadingMenuFactory" />
 
+    <component id="ModalDisplay" class="org.apache.royale.html.beads.plugin.ModalDisplay"/>
+    <component id="ModalOverlay" class="org.apache.royale.html.beads.plugin.ModalOverlay"/>
+
 </componentPackage>
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
index 644ba96..5ed85ba 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
@@ -1402,6 +1402,7 @@ package org.apache.royale.core
             }
         }
         
+        private var onceAdded:Boolean;
         /**
          *  The method called when added to a parent.  This is a good
          *  time to set up beads.
@@ -1415,6 +1416,9 @@ package org.apache.royale.core
          */
         public function addedToParent():void
         {
+            if(onceAdded)
+                return;
+            onceAdded = true;
             var c:Class;
 			
             COMPILE::JS
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/plugin/IModalDisplay.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/plugin/IModalDisplay.as
new file mode 100644
index 0000000..27199f2
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/plugin/IModalDisplay.as
@@ -0,0 +1,35 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 org.apache.royale.html.beads.plugin
+{
+  import org.apache.royale.events.EventDispatcher;
+  import org.apache.royale.core.IBead;
+  import org.apache.royale.core.IStrand;
+  import org.apache.royale.core.IUIBase;
+  import org.apache.royale.core.IPopUpHost;
+  import org.apache.royale.events.Event;
+  import org.apache.royale.utils.UIUtils;
+
+  public interface IModalDisplay
+  {
+    function show(parent:IPopUpHost):void;
+    function hide():void;
+
+  }
+}
\ No newline at end of file
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/plugin/ModalDisplay.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/plugin/ModalDisplay.as
new file mode 100644
index 0000000..2ce4db7
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/plugin/ModalDisplay.as
@@ -0,0 +1,191 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 org.apache.royale.html.beads.plugin
+{
+  import org.apache.royale.events.EventDispatcher;
+  import org.apache.royale.core.IBead;
+  import org.apache.royale.core.IStrand;
+  import org.apache.royale.core.IUIBase;
+  import org.apache.royale.core.IPopUpHost;
+  import org.apache.royale.events.Event;
+  import org.apache.royale.utils.UIUtils;
+  import org.apache.royale.events.IEventDispatcher;
+
+  public class ModalDisplay extends EventDispatcher implements IBead, IModalDisplay
+  {
+    public function ModalDisplay()
+    {
+      super();
+    }
+    /**
+     *  The strand.  Do not modify except
+     *  via the strand setter.  For reading only.
+     * 
+     *  Because Object.defineProperties in JS
+     *  doesn't allow you to just override the setter
+     *  (you have to override the getter as well even
+     *  if it just calls the super getter) it is
+     *  more efficient to expose this variable than
+     *  have all of the layers of simple overrides.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     */
+    protected var _strand:IStrand;
+    
+    /**
+     *  Get the strand for this bead
+     * 
+     *  Override this for whatever else you need to do when
+     *  being hooked to the Strand
+     * 
+     *  @copy org.apache.royale.core.IBead#strand
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     * 
+     *  @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+     */
+    public function set strand(value:IStrand):void
+    {
+        _strand = value;
+    }
+    
+    /**
+     *  The host component. 
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     *  @royaleignorecoercion org.apache.royale.core.IUIBase
+     */
+    public function get host():IUIBase
+    {
+        return _strand as IUIBase;
+    }
+
+    /**
+     * Shows the host in a popup host
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     */
+    public function show(parent:IPopUpHost):void
+    {
+      COMPILE::JS
+      {
+        var elem:HTMLElement = host.element;
+        elem.style.position = "fixed";
+        elem.style.left = "50%";
+        elem.style.maxWidth = "100%";
+        elem.style.maxHeight = "100%";
+        if(_maxWidth)
+          elem.style.width = "" + _maxWidth + "px";
+
+        switch(_position)
+        {
+          case "top":
+            elem.style.top = "0px";
+            elem.style.transform = "translate(-50%)";
+            break;
+          case "bottom":
+            elem.style.transform = "translate(-50%)";
+            //TODO calculate bottom
+            break;
+          default:
+            elem.style.top = "50%";
+            elem.style.transform = "translate(-50%, -50%)";
+        }
+
+      }
+      parent.popUpParent.addElement(host);
+      COMPILE::SWF
+      {
+        var parentComp:IUIBase = parent as IUIBase;
+        host.x = (parentComp.width - host.width) / 2;
+        switch(_position){
+          case "top":
+            host.y = 0;
+            break;
+          case "bottom":
+            host.y = parentComp.height - host.height;
+            break;
+          default:
+            host.y = (parentComp.height - host.height) / 2;
+            break;
+        }
+      }
+      host.visible = true;
+      host.dispatchEvent(new Event("modalShown"));
+    }
+
+    /**
+     * Removes the host from the display list
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     */
+    public function hide():void
+    {
+      host.parent.removeElement(host);
+      host.dispatchEvent(new Event("modalHidden"));
+    }
+
+    private var _position:String;
+
+    /**
+     * position can be "top", "bottom" or "center" (defaults to center)
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     */
+    private function get position():String
+    {
+    	return _position;
+    }
+
+    private function set position(value:String):void
+    {
+    	_position = value;
+    }
+
+    private var _maxWidth:Number;
+
+    public function get maxWidth():Number
+    {
+    	return _maxWidth;
+    }
+
+    public function set maxWidth(value:Number):void
+    {
+    	_maxWidth = value;
+    }
+  }
+}
\ No newline at end of file
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/plugin/ModalOverlay.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/plugin/ModalOverlay.as
new file mode 100644
index 0000000..b241871
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/plugin/ModalOverlay.as
@@ -0,0 +1,215 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 org.apache.royale.html.beads.plugin
+{
+  import org.apache.royale.events.EventDispatcher;
+  import org.apache.royale.core.IBead;
+  import org.apache.royale.core.IStrand;
+  import org.apache.royale.core.IUIBase;
+  import org.apache.royale.core.IPopUpHost;
+  import org.apache.royale.events.Event;
+  import org.apache.royale.utils.UIUtils;
+  import org.apache.royale.events.IEventDispatcher;
+  import org.apache.royale.core.IParent;
+  import org.apache.royale.core.IParentIUIBase;
+  import org.apache.royale.core.UIBase;
+  import org.apache.royale.utils.CSSUtils;
+  import org.apache.royale.events.MouseEvent;
+
+  COMPILE::SWF
+  {
+    import flash.display.Shape;
+  }
+
+  public class ModalOverlay extends EventDispatcher implements IBead
+  {
+    public function ModalOverlay()
+    {
+      super();
+    }
+    /**
+     *  The strand.  Do not modify except
+     *  via the strand setter.  For reading only.
+     * 
+     *  Because Object.defineProperties in JS
+     *  doesn't allow you to just override the setter
+     *  (you have to override the getter as well even
+     *  if it just calls the super getter) it is
+     *  more efficient to expose this variable than
+     *  have all of the layers of simple overrides.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     */
+    protected var _strand:IStrand;
+    
+    /**
+     *  Get the strand for this bead
+     * 
+     *  Override this for whatever else you need to do when
+     *  being hooked to the Strand
+     * 
+     *  @copy org.apache.royale.core.IBead#strand
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     * 
+     *  @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+     */
+    public function set strand(value:IStrand):void
+    {
+        _strand = value;
+        (_strand as IEventDispatcher).addEventListener("modalShown", handleShown);
+        (_strand as IEventDispatcher).addEventListener("modalHidden", handleHidden);
+    }
+    
+    /**
+     *  The host component. 
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     *  @royaleignorecoercion org.apache.royale.core.IUIBase
+     */
+    public function get host():IUIBase
+    {
+        return _strand as IUIBase;
+    }
+    // Application and View are both possible parents,
+    // but there's no single interface for both that will work.
+    private var hostParent:IParent;
+    private var overlay:UIBase;
+    /**
+     *  @royaleignorecoercion Object
+     */
+    private function handleShown(ev:Event):void
+    {
+      hostParent = host.parent;
+      var index:int = hostParent.getElementIndex(host);
+      overlay = new UIBase();
+      COMPILE::SWF
+      {
+        overlay.width = (hostParent as Object).width;
+        overlay.height = (hostParent as Object).height;
+  			var shape:Shape = new Shape();
+	  		shape.graphics.beginFill(color,alpha);
+		  	shape.graphics.drawRect(0, 0, overlay.width, overlay.height);
+			  shape.graphics.endFill();
+        overlay.addChild(shape);
+
+      }
+
+      COMPILE::JS
+      {
+        var style:CSSStyleDeclaration = overlay.element.style;
+        style.position = "fixed";
+        style.top = "0px";
+        style.left = "0px";
+        style.width = "100%";
+        style.height = "100%";
+        style.opacity = alpha;
+        style.backgroundColor = CSSUtils.attributeFromColor(color);
+      }
+      hostParent.addElementAt(overlay,index);
+      overlay.addEventListener(MouseEvent.CLICK,handleClick);
+    }
+
+    private function handleClick(ev:MouseEvent):void
+    {
+      ev.preventDefault();
+      ev.stopImmediatePropagation();
+      if(_hideOnClick)
+      {
+        var displayBead:IModalDisplay =  host.getBeadByType(IModalDisplay) as IModalDisplay;
+        displayBead.hide();
+      }
+    }
+
+    private function handleHidden(ev:Event):void
+    {
+      hostParent.removeElement(overlay);
+    }
+
+    private var _hideOnClick:Boolean = true;
+
+    /**
+     * If <code>hideOnClick</code> is true, the host will be closed when clicking
+     *  on the overlay. default is true
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     */
+    public function get hideOnClick():Boolean
+    {
+    	return _hideOnClick;
+    }
+
+    public function set hideOnClick(value:Boolean):void
+    {
+    	_hideOnClick = value;
+    }
+
+    private var _color:uint = 0;
+
+    /**
+     * The color value of the overlay (default black)
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     */
+    public function get color():uint
+    {
+    	return _color;
+    }
+
+    public function set color(value:uint):void
+    {
+    	_color = value;
+    }
+
+    private var _alpha:Number = 0.5;
+
+    /**
+     * The alpha of the overlay in a value of 0 through 1 (default 0.5).
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     */
+    public function get alpha():Number
+    {
+    	return _alpha;
+    }
+
+    public function set alpha(value:Number):void
+    {
+    	_alpha = value;
+    }
+  }
+}
\ No newline at end of file


Re: [royale-asjs] branch feature/modal created (now 1633099)

Posted by Harbs <ha...@gmail.com>.
I have a few concerns with this and suggestions welcome:

1. Due to the bead lifecycle, declared beads are only added after the component is added to a parent. This means that you can’t just “new” an MXML component which has modal beads without first adding it somewhere.
2. As mentioned in the other thread, beads are re-added. I added some just-in-case code for now to work around the issue.

Any suggestions in general are welcome…

Harbs

> On Nov 13, 2018, at 11:01 AM, harbs@apache.org wrote:
> 
> This is an automated email from the ASF dual-hosted git repository.
> 
> harbs pushed a change to branch feature/modal
> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.
> 
> 
>      at 1633099  Added Modal beads with example
> 
> This branch includes the following new commits:
> 
>     new 1633099  Added Modal beads with example
> 
> The 1 revisions listed above as "new" are entirely new to this
> repository and will be described in separate emails.  The revisions
> listed as "add" were already present in the repository and have only
> been added to this reference.
> 
>