This is an automated email from the ASF dual-hosted git repository.
carlosrovira pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/royale-docs.git
The following commit(s) were added to refs/heads/master by this push:
new a937604 move Features & Concepts to first level
a937604 is described below
commit a937604d3678c1e1981dcacf79cbcf5f452b0497
Author: Carlos Rovira <[email protected]>
AuthorDate: Sat Aug 24 23:54:25 2019 +0200
move Features & Concepts to first level
---
README.md | 4 +-
_data/toc.json | 64 +++++++++++-----------
component-sets/jewel.md | 4 +-
component-sets/jewel/jewel-alert.md | 2 +-
component-sets/jewel/jewel-theme-creation.md | 4 +-
component-sets/jewel/jewel-themes.md | 2 +-
create-an-Application.md | 2 +-
create-an-application/application-structure.md | 2 +-
.../application-tutorial/value-objects.md | 2 +-
create-an-application/application-tutorial/view.md | 2 +-
.../migrate-an-existing-app/migrate-from-flex.md | 2 +-
...res-and-concepts.md => features-and-concepts.md | 14 ++---
.../actionscript/abstract-classes.md | 6 +-
.../actionscript/private-constructors.md | 6 +-
{welcome/features => features}/as3.md | 4 +-
{welcome/features => features}/data-binding.md | 0
.../features => features}/external-interface.md | 2 +-
{welcome/features => features}/externs.md | 2 +-
{welcome/features => features}/modules.md | 0
{welcome/features => features}/mxml.md | 0
{welcome/features => features}/payg.md | 2 +-
.../features => features}/strands-and-beads.md | 2 +-
{welcome/features => features}/view-states.md | 0
index.md | 2 +-
user-interface/components.md | 4 +-
welcome/high-level-view.md | 9 ++-
26 files changed, 73 insertions(+), 70 deletions(-)
diff --git a/README.md b/README.md
index d4cd5ad..10194bc 100644
--- a/README.md
+++ b/README.md
@@ -47,9 +47,9 @@ Use HTML comments at the top of the document for any
explanatory notes for the d
## Links
-In the .md files, links have to be full paths without the leading slash. So to
link to the published, HTML, version of /Welcome/Features/as3.md, you would use
+In the .md files, links have to be full paths without the leading slash. So to
link to the published, HTML, version of features/as3.md, you would use
-```[AS3](welcome/features/as3.html)```
+`[AS3](features/as3.html)`
without the leading "/". Links are case-sensitive, and you need to insert
```%20``` for any space that appears in the target file's name. Check the
guidance about file names, above.
diff --git a/_data/toc.json b/_data/toc.json
index 0659a58..c968cef 100644
--- a/_data/toc.json
+++ b/_data/toc.json
@@ -8,38 +8,6 @@
"path": "welcome/high-level-view.md"
},
{
- "path": "welcome/features-and-concepts.md",
- "children": [
- {
- "path": "welcome/features/as3.md"
- },
- {
- "path": "welcome/features/mxml.md"
- },
- {
- "path": "welcome/features/payg.md"
- },
- {
- "path": "welcome/features/strands-and-beads.md"
- },
- {
- "path": "welcome/features/external-interface.md"
- },
- {
- "path": "welcome/features/externs.md"
- },
- {
- "path": "welcome/features/data-binding.md"
- },
- {
- "path": "welcome/features/view-states.md"
- },
- {
- "path": "welcome/features/modules.md"
- }
- ]
- },
- {
"path": "welcome/history.md"
},
{
@@ -79,6 +47,38 @@
]
},
{
+ "path": "features-and-concepts.md",
+ "children": [
+ {
+ "path": "features/as3.md"
+ },
+ {
+ "path": "features/mxml.md"
+ },
+ {
+ "path": "features/payg.md"
+ },
+ {
+ "path": "features/strands-and-beads.md"
+ },
+ {
+ "path": "features/external-interface.md"
+ },
+ {
+ "path": "features/externs.md"
+ },
+ {
+ "path": "features/data-binding.md"
+ },
+ {
+ "path": "features/view-states.md"
+ },
+ {
+ "path": "features/modules.md"
+ }
+ ]
+ },
+ {
"path": "component-sets.md",
"children": [
{
diff --git a/component-sets/jewel.md b/component-sets/jewel.md
index 24ec827..5dba0c2 100644
--- a/component-sets/jewel.md
+++ b/component-sets/jewel.md
@@ -22,9 +22,9 @@ title: Jewel
A set of modern UI components
-Jewel is a themeable and responsive set of user interface components for
Apache Royale to help you quickly build the front end of your applications with
[ActionScript](welcome/features/as3.html) & [MXML](welcome/features/mxml.html).
+Jewel is a themeable and responsive set of user interface components for
Apache Royale to help you quickly build the front end of your applications with
[ActionScript](features/as3.html) & [MXML](features/mxml.html).
-It's based by design on [Basic](component-sets/basic.html) components. But
while Basic is very strict with concepts like
[PAYG](welcome/features/payg.html), in Jewel, while PAYG is important, when
necessary we prioritize other things like responsiveness, themes and look and
feel.
+It's based by design on [Basic](component-sets/basic.html) components. But
while Basic is very strict with concepts like [PAYG](features/payg.html), in
Jewel, while PAYG is important, when necessary we prioritize other things like
responsiveness, themes and look and feel.
## Browser Support
diff --git a/component-sets/jewel/jewel-alert.md
b/component-sets/jewel/jewel-alert.md
index fb180ca..f32be09 100644
--- a/component-sets/jewel/jewel-alert.md
+++ b/component-sets/jewel/jewel-alert.md
@@ -37,7 +37,7 @@ Available since version __0.9.4__
The `Alert` component displays a message and one or more buttons in a window
that pops up over all other controls and views.
It uses the `AlertView` bead to display a [modal
dialog](https://en.wikipedia.org/wiki/Modal_window){:target='_blank'} with a
title and a variety of buttons configured through the flag property of its
`show` static function.
-> `Alert` uses the HTML dialog element, which currently has very limited
cross-browser support. To ensure support across all modern browsers, we use the
dialogPolyfill [externs](welcome/features/externs.html).
+> `Alert` uses the HTML dialog element, which currently has very limited
cross-browser support. To ensure support across all modern browsers, we use the
dialogPolyfill [externs](features/externs.html).
## Example of use
diff --git a/component-sets/jewel/jewel-theme-creation.md
b/component-sets/jewel/jewel-theme-creation.md
index 204fd1f..8fdb998 100644
--- a/component-sets/jewel/jewel-theme-creation.md
+++ b/component-sets/jewel/jewel-theme-creation.md
@@ -40,11 +40,11 @@ The `default.css` file is the resuling CSS file that holds
all CSS definitions f
## Jewel Library
-Here you'll find the [ActionScript](welcome/features/as3.html) classes that
define each component and support class files components need to work properly.
You'll find a `sass` folder with a `.sass` file for each component which holds
all _structural_ definitions. Those definitions can be normal _CSS rules_ or
_royale bead definition rules_.
+Here you'll find the [ActionScript](features/as3.html) classes that define
each component and support class files components need to work properly. You'll
find a `sass` folder with a `.sass` file for each component which holds all
_structural_ definitions. Those definitions can be normal _CSS rules_ or
_royale bead definition rules_.
You'll never find a style rule in the Jewel library that define _colors,
lines, fonts, or shapes_ (the theme we locate in the __theme library__ handles
these values). We'll find only the CSS rules needed to generate each jewel
component visual structure (i.e: display, position, z-index, overflow,...), and
the default ActionScript bead classes that ship with a concrete component per
platform (i.e: BeadView, BeadModel, BeadController, BeadLayout,...).
-> Apache Royale uses CSS through all the framwework to link [beads to the
component's strand](welcome/features/strands-and-beads.html) so components
define the default composition of beads via CSS.
+> Apache Royale uses CSS through all the framwework to link [beads to the
component's strand](features/strands-and-beads.html) so components define the
default composition of beads via CSS.
## Jewel Theme Library
diff --git a/component-sets/jewel/jewel-themes.md
b/component-sets/jewel/jewel-themes.md
index 1719b3b..6393e68 100644
--- a/component-sets/jewel/jewel-themes.md
+++ b/component-sets/jewel/jewel-themes.md
@@ -23,7 +23,7 @@ title: Jewel Themes
The look and feel of the jewel component set
Jewel component set focus on themes. Themes provides the capability of change
the appearance of _all_ components at once.
-A theme is a predefined CSS file (and optionally a other assets like images)
that holds the definitions of each Jewel component, its subcomponents and the
default [beads](welcome/features/strands-and-beads.html) used to configure that
components.
+A theme is a predefined CSS file (and optionally a other assets like images)
that holds the definitions of each Jewel component, its subcomponents and the
default [beads](features/strands-and-beads.html) used to configure that
components.
Royale use the theme to add the right css selectors to the final compilation
so when the user loads the application the required css and other files are
loaded and the application shows a concrete look and feel.
diff --git a/create-an-Application.md b/create-an-Application.md
index be50d1c..0c495d2 100644
--- a/create-an-Application.md
+++ b/create-an-Application.md
@@ -33,7 +33,7 @@ This document is divided into several sections:
[Security](create-an-application/security.html) provides more information
about making sure hackers can't use your app to be malicous and about dealing
with common security restrictions when your app wants to access external
resources.
-[Modules](welcome/features/modules.html) discusses how to break your
application into pieces so it doesn't have to all get downloaded at once. Or
have the whole thing compiled at once.
+[Modules](features/modules.html) discusses how to break your application into
pieces so it doesn't have to all get downloaded at once. Or have the whole
thing compiled at once.
[Royale code conventions](create-an-application/code-conventions.html)
explains the typical ways Royale developers name files, classes, function,
variables and more.
diff --git a/create-an-application/application-structure.md
b/create-an-application/application-structure.md
index 9bcbaf2..379b151 100644
--- a/create-an-application/application-structure.md
+++ b/create-an-application/application-structure.md
@@ -32,7 +32,7 @@ Let's say you are creating a project called MyFirstRoyaleApp.
Create a MyFirstRo
If you use <a href="https://maven.apache.org/" target="_blank">Apache
Maven</a> to build your app, you can use one of the Maven archetypes, which put
the main application source code 3 levels deep in a "src/main/royale" folder
structure. Other kinds of files then go in "src/main/resource",
"src/main/config" and so on. Maven instructs the compiler to put the output in
a "target/javascript/bin" folder.
-Most Royale applications use an [MXML](welcome/features/mxml.html) file as the
main application file. Other files are written in MXML or
[ActionScript](welcome/features/as3.html) depending on whether you are
assembling pieces or writing custom logic. You can write a Royale Application
without using MXML at all, but you'll end up writing more code.
+Most Royale applications use an [MXML](features/mxml.html) file as the main
application file. Other files are written in MXML or
[ActionScript](features/as3.html) depending on whether you are assembling
pieces or writing custom logic. You can write a Royale Application without
using MXML at all, but you'll end up writing more code.
So, if you decide to use MXML as your main application file, then your folder
structure might look like this:
diff --git a/create-an-application/application-tutorial/value-objects.md
b/create-an-application/application-tutorial/value-objects.md
index 5a66888..61fb413 100644
--- a/create-an-application/application-tutorial/value-objects.md
+++ b/create-an-application/application-tutorial/value-objects.md
@@ -48,7 +48,7 @@ public class LogEntry
```
You can download this file from
[here](https://github.com/apache/royale-asjs/blob/develop/examples/express/GitHubCommitLogViewer/src/main/royale/LogEntry.as).
-Notice the use of [Bindable](welcome/features/data-binding.html) metadata.
This special syntax indicates to the compiler that there are no DataBinding
notifications for the message field. Once it is set, it will not change. We
could also specify "message" as a "const" instead of a "var" and set up a
constructor with parameters, but constructor parameters are not allowed for
anything that wants to be declared in MXML.
+Notice the use of [Bindable](features/data-binding.html) metadata. This
special syntax indicates to the compiler that there are no DataBinding
notifications for the message field. Once it is set, it will not change. We
could also specify "message" as a "const" instead of a "var" and set up a
constructor with parameters, but constructor parameters are not allowed for
anything that wants to be declared in MXML.
Once we have the LogEntry Value Object, we use LogEntry throughout the app. In
the conversion loop, we change it to look like this:
diff --git a/create-an-application/application-tutorial/view.md
b/create-an-application/application-tutorial/view.md
index 8bd6d2d..ca468c7 100644
--- a/create-an-application/application-tutorial/view.md
+++ b/create-an-application/application-tutorial/view.md
@@ -61,7 +61,7 @@ myLabel.text = projectName;
And we'd also have to write change detection code if the value could change at
runtime (which it doesn't in this case).
-See more about what this powerful feature can do for you on this page: [Data
binding](welcome/features/data-binding.html).
+See more about what this powerful feature can do for you on this page: [Data
binding](features/data-binding.html).
Also, a commit message might be too long to read in a row of a DataGrid so we
will add a place to display the longer message of a selected commit.
diff --git a/create-an-application/migrate-an-existing-app/migrate-from-flex.md
b/create-an-application/migrate-an-existing-app/migrate-from-flex.md
index 691b5eb..820088c 100644
--- a/create-an-application/migrate-an-existing-app/migrate-from-flex.md
+++ b/create-an-application/migrate-an-existing-app/migrate-from-flex.md
@@ -21,7 +21,7 @@ title: Migrate from Flex
<!-- This is from material created by Peter Ent and modified by Tom Chiverton:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=34013930 -->
# Migrate from Flex
-If you have developed applications using [Apache Flex
SDK](https://flex.apache.org/){:target='_blank'}, or Adobe Flex before it, your
applications probably combine [MXML](welcome/features/mxml.html) and
[ActionScript](welcome/features/as3.html) files along with resources like
images and audio files; and some of the MXML files have <fx:Script> tags with
ActionScript snippets inside them. If that is the case, you will find yourself
at home working with Apache Royale. The big difference is [...]
+If you have developed applications using [Apache Flex
SDK](https://flex.apache.org/){:target='_blank'}, or Adobe Flex before it, your
applications probably combine [MXML](features/mxml.html) and
[ActionScript](features/as3.html) files along with resources like images and
audio files; and some of the MXML files have <fx:Script> tags with ActionScript
snippets inside them. If that is the case, you will find yourself at home
working with Apache Royale. The big difference is not so much the [...]
It is not yet possible to just import an existing Flex application into Apache
Royale and then produce output in JavaScript that will run almost anywhere.
However, you may need to do less hands-on conversion than you think to get to
where you can produce your application, transpiled to JavaScript, through
Royale.
diff --git a/welcome/features-and-concepts.md b/features-and-concepts.md
similarity index 69%
rename from welcome/features-and-concepts.md
rename to features-and-concepts.md
index b97ed38..e0a69d3 100644
--- a/welcome/features-and-concepts.md
+++ b/features-and-concepts.md
@@ -27,26 +27,26 @@ Here are some things you may need to know to help you be
more productive with Ro
## AS3 and MXML Languages
-Royale uses both a declarative markup language called
[MXML](welcome/features/mxml.html) and a scripting language called
[ActionScript](welcome/features/as3.html) that is like JavaScript, but with
classes, interfaces and types. This allows you to more efficiently declare the
static portions of your application and write up the dynamic portions in a
language where the compiler can catch more errors sooner.
+Royale uses both a declarative markup language called
[MXML](features/mxml.html) and a scripting language called
[ActionScript](features/as3.html) that is like JavaScript, but with classes,
interfaces and types. This allows you to more efficiently declare the static
portions of your application and write up the dynamic portions in a language
where the compiler can catch more errors sooner.
## Pay as you go (PAYG)
-Royale provides a variety of [component
sets](./user-interface/components.html), each tuned towards different
applications requirements. Components are designed with a ["Pay as you
go"](welcome/features/payg.html) philosophy. Only the most common functionality
is built into the component, and other options are added as plugins called
Beads. Components designed this way use to be small and fast, and don't have
lots of built-in customization options that will never use most of the times. Y
[...]
+Royale provides a variety of [component
sets](./user-interface/components.html), each tuned towards different
applications requirements. Components are designed with a ["Pay as you
go"](features/payg.html) philosophy. Only the most common functionality is
built into the component, and other options are added as plugins called Beads.
Components designed this way use to be small and fast, and don't have lots of
built-in customization options that will never use most of the times. You can [
[...]
## Strands and Beads
-The underlying component patterns in most Royale components rely on a plug-in
model. Instead of making large component classes with lots of code baked in,
each individual feature of a component is designed as its own class with an
interface marking it as a "Bead", and then the component itself is called a
"Strand" and Beads are placed on the Strand to compose a Royale component. You
can [read more about Strands and Beads
here](welcome/features/strands-and-beads.html).
+The underlying component patterns in most Royale components rely on a plug-in
model. Instead of making large component classes with lots of code baked in,
each individual feature of a component is designed as its own class with an
interface marking it as a "Bead", and then the component itself is called a
"Strand" and Beads are placed on the Strand to compose a Royale component. You
can [read more about Strands and Beads here](features/strands-and-beads.html).
## ExternalInterface and Externs
-Sometimes you may want your Royale application to call an external piece of
JavaScript that is also hosted in your web page, or even for some extenal
JavaScript from your page to call into the Royale application. In the Flex (and
Flash) world, there was the possibility to use the `ExternalInterface` class to
achieve this functionality. If you want this in Royale, there are some options
available that you can [read about
here](welcome/features/external-interface.html).
+Sometimes you may want your Royale application to call an external piece of
JavaScript that is also hosted in your web page, or even for some extenal
JavaScript from your page to call into the Royale application. In the Flex (and
Flash) world, there was the possibility to use the `ExternalInterface` class to
achieve this functionality. If you want this in Royale, there are some options
available that you can [read about here](features/external-interface.html).
-Another option are externs, wich is uses [Google Closure Compiler
(GCC)](https://developers.google.com/closure/compiler/){:target='_blank'} to
declare that a name for a class, property or function is defined in external
code and so should not be renamed when application code is compiled. Apache
Royale can use the properties of the external library, and you can even see
them as options if you are using an __IDE__, with _code intelligence_ enabled.
[read about here](welcome/features/extern [...]
+Another option are externs, wich is uses [Google Closure Compiler
(GCC)](https://developers.google.com/closure/compiler/){:target='_blank'} to
declare that a name for a class, property or function is defined in external
code and so should not be renamed when application code is compiled. Apache
Royale can use the properties of the external library, and you can even see
them as options if you are using an __IDE__, with _code intelligence_ enabled.
[read about here](features/externs.html).
## Data Binding
-[read about here](welcome/features/data-binding.html)
+[read about here](features/data-binding.html)
## View States
-[read about here](welcome/features/view-states.html)
\ No newline at end of file
+[read about here](features/view-states.html)
\ No newline at end of file
diff --git a/welcome/features/actionscript/abstract-classes.md
b/features/actionscript/abstract-classes.md
similarity index 82%
rename from welcome/features/actionscript/abstract-classes.md
rename to features/actionscript/abstract-classes.md
index ab666b1..a8c055a 100644
--- a/welcome/features/actionscript/abstract-classes.md
+++ b/features/actionscript/abstract-classes.md
@@ -23,11 +23,11 @@ title: Abstract classes in ActionScript
-allow-abstract-classes
-[Apache Royale](https://royale.apache.org/){:target='_blank'} adds support for
declaring `abstract` classes in [ActionScript](welcome/features/as3.html). An
abstract class cannot be instantiated using the `new` keyword, meaning that it
must be subclassed. Additionally, an abstract class may declare `abstract`
methods that do not have a function body. Abstract methods must be implemented
by the concrete subclass, similar to how the methods of an interface must also
be implemented.
+[Apache Royale](https://royale.apache.org/){:target='_blank'} adds support for
declaring `abstract` classes in [ActionScript](features/as3.html). An abstract
class cannot be instantiated using the `new` keyword, meaning that it must be
subclassed. Additionally, an abstract class may declare `abstract` methods that
do not have a function body. Abstract methods must be implemented by the
concrete subclass, similar to how the methods of an interface must also be
implemented.
## Enable abstract classes
-Like other [new ActionScript language
features](welcome/features/as3.html#new-actionscript-language-features-in-royale)
that Royale adds, abstract classes are enabled by default. To disable abstract
classes in your application, use the `-allow-abstract-classes` compiler option.
+Like other [new ActionScript language
features](features/as3.html#new-actionscript-language-features-in-royale) that
Royale adds, abstract classes are enabled by default. To disable abstract
classes in your application, use the `-allow-abstract-classes` compiler option.
```sh
mxmlc -allow-abstract-classes=false MyApp.mxml
@@ -116,4 +116,4 @@ Checking whether a class is abstract happens at
compile-time only. However, by u
If a SWC library contains classes with abstract classes, applications using
that library must also enable abstract classes before the compiler will enforce
any restrictions.
-Other ActionScript compilers, such as the one in the [Apache Flex
SDK](https://flex.apache.org/){:target='_blank'}, may not recognize or enforce
private constructors. Attemping to pass source code or SWC libraries that
contain classes with private constructors to another compiler may result in
compile-time errors or unexpected behavior at run-time. In other words, to
write 100% portable ActionScript code that works with any compiler, you should
avoid using abstract classes and any of Roy [...]
+Other ActionScript compilers, such as the one in the [Apache Flex
SDK](https://flex.apache.org/){:target='_blank'}, may not recognize or enforce
private constructors. Attemping to pass source code or SWC libraries that
contain classes with private constructors to another compiler may result in
compile-time errors or unexpected behavior at run-time. In other words, to
write 100% portable ActionScript code that works with any compiler, you should
avoid using abstract classes and any of Roy [...]
diff --git a/welcome/features/actionscript/private-constructors.md
b/features/actionscript/private-constructors.md
similarity index 81%
rename from welcome/features/actionscript/private-constructors.md
rename to features/actionscript/private-constructors.md
index 0493e55..608d9a3 100644
--- a/welcome/features/actionscript/private-constructors.md
+++ b/features/actionscript/private-constructors.md
@@ -23,11 +23,11 @@ title: Private constructors in ActionScript
-allow-private-constructors
-[Apache Royale](https://royale.apache.org/){:target='_blank'} adds support for
declaring the constructor of a class `private` instead of `public` in
[ActionScript](welcome/features/as3.html). When a constructor is private, it
cannot be instantiated with the `new` keyword outside of the class where it is
defined. Private constructors are commonly used for implementing the
*singleton* design pattern, which is when only one instance of a particular
class should ever be created.
+[Apache Royale](https://royale.apache.org/){:target='_blank'} adds support for
declaring the constructor of a class `private` instead of `public` in
[ActionScript](features/as3.html). When a constructor is private, it cannot be
instantiated with the `new` keyword outside of the class where it is defined.
Private constructors are commonly used for implementing the *singleton* design
pattern, which is when only one instance of a particular class should ever be
created.
## Enable private constructors
-Like other [new ActionScript language
features](welcome/features/as3.html#new-actionscript-language-features-in-royale)
that Royale adds, are enabled by default. To disable private constructors in
your application, use the `-allow-private-constructors` compiler option.
+Like other [new ActionScript language
features](features/as3.html#new-actionscript-language-features-in-royale) that
Royale adds, are enabled by default. To disable private constructors in your
application, use the `-allow-private-constructors` compiler option.
```sh
mxmlc -allow-private-constructors=false MyApp.mxml
@@ -102,5 +102,5 @@ Checking whether a constructor is private or not happens at
compile-time only. H
If a SWC library contains classes with private constructors, applications
using that library must also enable private constructors before the compiler
will enforce any restrictions.
-Other ActionScript compilers, such as the one in the [Apache Flex
SDK](https://flex.apache.org/){:target='_blank'}, may not recognize or enforce
private constructors. Attemping to pass source code or SWC libraries that
contain classes with private constructors to another compiler may result in
compile-time errors or unexpected behavior at run-time. In other words, to
write 100% portable ActionScript code that works with any compiler, you should
avoid using private constructors and any of [...]
+Other ActionScript compilers, such as the one in the [Apache Flex
SDK](https://flex.apache.org/){:target='_blank'}, may not recognize or enforce
private constructors. Attemping to pass source code or SWC libraries that
contain classes with private constructors to another compiler may result in
compile-time errors or unexpected behavior at run-time. In other words, to
write 100% portable ActionScript code that works with any compiler, you should
avoid using private constructors and any of [...]
diff --git a/welcome/features/as3.md b/features/as3.md
similarity index 93%
rename from welcome/features/as3.md
rename to features/as3.md
index a33f051..90c6196 100644
--- a/welcome/features/as3.md
+++ b/features/as3.md
@@ -55,8 +55,8 @@ The Royale compiler extends the ActionScript language with
useful, new features.
The following new ActionScript features are available with the Royale compiler:
-* [Abstract Classes](welcome/features/actionscript/abstract-classes.html)
-* [Private
Constructors](welcome/features/actionscript/private-constructors.html)
+* [Abstract Classes](features/actionscript/abstract-classes.html)
+* [Private Constructors](features/actionscript/private-constructors.html)
### Limitations of ActionScript language extensions
diff --git a/welcome/features/data-binding.md b/features/data-binding.md
similarity index 100%
rename from welcome/features/data-binding.md
rename to features/data-binding.md
diff --git a/welcome/features/external-interface.md
b/features/external-interface.md
similarity index 92%
rename from welcome/features/external-interface.md
rename to features/external-interface.md
index 4c03334..ff8fe85 100644
--- a/welcome/features/external-interface.md
+++ b/features/external-interface.md
@@ -76,4 +76,4 @@ MyJSInterface.testFunction("This will be passed to TestFunc");
## Externs
-Finally a better and recommended way is to use
[Externs](welcome/features/externs.html) to know another way to communicate
to/from External JavaScript that brings many benefits like _code completion_
and _code intelligence_ since externs code is considered standard
__ActionScript__ code.
\ No newline at end of file
+Finally a better and recommended way is to use
[Externs](features/externs.html) to know another way to communicate to/from
External JavaScript that brings many benefits like _code completion_ and _code
intelligence_ since externs code is considered standard __ActionScript__ code.
\ No newline at end of file
diff --git a/welcome/features/externs.md b/features/externs.md
similarity index 97%
rename from welcome/features/externs.md
rename to features/externs.md
index e55fe06..b83fecb 100644
--- a/welcome/features/externs.md
+++ b/features/externs.md
@@ -92,4 +92,4 @@ To learn more about using the huge range of external
JavaScript libraries that i
## ExternalInterface
-Check [ExternalInterface](welcome/features/external-interface.html) to know
another way to communicate to/from External JavaScript.
\ No newline at end of file
+Check [ExternalInterface](features/external-interface.html) to know another
way to communicate to/from External JavaScript.
\ No newline at end of file
diff --git a/welcome/features/modules.md b/features/modules.md
similarity index 100%
rename from welcome/features/modules.md
rename to features/modules.md
diff --git a/welcome/features/mxml.md b/features/mxml.md
similarity index 100%
rename from welcome/features/mxml.md
rename to features/mxml.md
diff --git a/welcome/features/payg.md b/features/payg.md
similarity index 96%
rename from welcome/features/payg.md
rename to features/payg.md
index 6769d3e..7cd1c68 100644
--- a/welcome/features/payg.md
+++ b/features/payg.md
@@ -73,7 +73,7 @@ However, we don't want to ignore DRY. Using subclasses in
extended components ca
### Strands and Beads
-The [Strands and Beads](welcome/features/strands-and-beads.html) concept is a
metaphor for adding extra functionality (beads) onto a component (strand).
_Beads_ are the modular units of functionality that can be added to the
_strand_ (base component).
+The [Strands and Beads](features/strands-and-beads.html) concept is a metaphor
for adding extra functionality (beads) onto a component (strand). _Beads_ are
the modular units of functionality that can be added to the _strand_ (base
component).
### Compiler
diff --git a/welcome/features/strands-and-beads.md
b/features/strands-and-beads.md
similarity index 97%
rename from welcome/features/strands-and-beads.md
rename to features/strands-and-beads.md
index e32fcab..4841844 100644
--- a/welcome/features/strands-and-beads.md
+++ b/features/strands-and-beads.md
@@ -23,7 +23,7 @@ description: Adding functionality to a component through
composition
Adding functionality to a component through composition
-Strands and beads are key concepts in Royale, related to the
[PAYG](welcome/features/payg.html) (pay as you go) concept. The idea is to
keep component code as lightweight as possible, and to add functionality and
complexity only to the components that need it.
+Strands and beads are key concepts in Royale, related to the
[PAYG](features/payg.html) (pay as you go) concept. The idea is to keep
component code as lightweight as possible, and to add functionality and
complexity only to the components that need it.
> For example, you may use a lot of text input fields in your application, but
> only one or two need to be able to protect passwords by converting the
> display of text the user provides into dots. You may want to disable or
> enable some instances of the text input component, but not all of them,
> while an end user is working with your application. There is no reason to
> have that extra functionality (and added weight of code) available
> everywhere _"just in case"_, as was the rule in Apache Flex.
diff --git a/welcome/features/view-states.md b/features/view-states.md
similarity index 100%
rename from welcome/features/view-states.md
rename to features/view-states.md
diff --git a/index.md b/index.md
index 381157b..8b2cb14 100644
--- a/index.md
+++ b/index.md
@@ -32,7 +32,7 @@ This document is divided into several sections:
* [High Level View](welcome/high-level-view.html) gives an overview of Royale.
- * [Features and Concepts](welcome/features-and-concepts.html) explains the
main features of Royale and some concepts that might help you be more
productive.
+ * [Features and Concepts](features-and-concepts.html) explains the main
features of Royale and some concepts that might help you be more productive.
* [A Bit of History](welcome/history.html) provides a brief background on how
Royale came to be.
diff --git a/user-interface/components.md b/user-interface/components.md
index a2bad5b..fc18967 100644
--- a/user-interface/components.md
+++ b/user-interface/components.md
@@ -31,7 +31,7 @@ Royale provides a wide range of components to help you design
a user interface t
* Usability features (alerts, snackbar pop-ups, localization features,
dynamic displays depending on the user's metadata)
* Rich content (images, videos, audio, transitions)
-Developers who have worked in Flex will quickly feel at home with Royale
components, although they will need to pay attention to the ["Pay as you
go"](welcome/features/payg.html) concept that is a Royale hallmark. Components
do well the basic functions associated with their names, but to add features
(for instance, you want to force the text the user enters to lower case), you
need to add the appropriate bead to the strand of the component:
+Developers who have worked in Flex will quickly feel at home with Royale
components, although they will need to pay attention to the ["Pay as you
go"](features/payg.html) concept that is a Royale hallmark. Components do well
the basic functions associated with their names, but to add features (for
instance, you want to force the text the user enters to lower case), you need
to add the appropriate bead to the strand of the component:
```as3
<j:TextInput text="Your entry will appear in LOWER case">
@@ -41,7 +41,7 @@ Developers who have worked in Flex will quickly feel at home
with Royale compone
</j:TextInput>
```
-You can [read more about Strands and Beads
here](welcome/features/strands-and-beads.html).
+You can [read more about Strands and Beads
here](features/strands-and-beads.html).
## Component sets
Royale has a series of [component sets](component-sets.html), groups of
ready-to-use components which are designed for different purposes.
diff --git a/welcome/high-level-view.md b/welcome/high-level-view.md
index ec17e1f..e513039 100644
--- a/welcome/high-level-view.md
+++ b/welcome/high-level-view.md
@@ -16,6 +16,7 @@
layout: docpage
title: High Level View
+description: Where we come from
---
<!-- Based on material written by Peter Ent and modified by Tom Chiverton:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=34013930 -->
@@ -29,8 +30,8 @@ While Flex may work using Flash in browsers or within AIR on
computers with trad
Beyond that, it is becoming clear that Royale can provide significant
developer productivity gains for new projects. Flex made it easy and efficient
to create robust applications. Like Flex, Royale provides:
- * Declarative Language ([MXML](welcome/features/mxml.html)) - Declarative
languages provide a schematic, or diagram. of the pieces of the application,
and are more terse than options like JavaScript.
- * Semi-Structured Language ([ActionScript](welcome/features/as3.html)) -
ActionScript deploys classes and interfaces, so it can do a better job of
enforcing correct use of APIs than JavaScript can.
+ * Declarative Language ([MXML](features/mxml.html)) - Declarative languages
provide a schematic, or diagram. of the pieces of the application, and are more
terse than options like JavaScript.
+ * Semi-Structured Language ([ActionScript](features/as3.html)) - ActionScript
deploys classes and interfaces, so it can do a better job of enforcing correct
use of APIs than JavaScript can.
* Runtime Verifier - The verifier catches errors at runtime so you can
address them before packaging a release.
* Choice of IDEs - You can choose the IDE that suits you best, and the IDEs
can provide better code assistance because the coding language is structured.
@@ -40,11 +41,13 @@ These features help you make fewer mistakes when writing
code, and that saves ti
<!-- Coming soon: LINK TO OM's UPDATED SLIDE SHOW
http://events.linuxfoundation.org/sites/events/files/slides/FlexJS_ApacheCon_2015.pdf
-->
## How it works
-Because both [ActionScript](welcome/features/as3.html) and JavaScript are
based on the same language, ECMAScript, most code you write in AS translates
well to JS. One significant difference is that AS uses the concepts of classes
and objects to structure how your code functions, while pure JavaScript does
not have those concepts. When you get ready to compile and run your
application, the Royale compiler translates AS-specific code into JS code
organized into pseudo-classes, which then r [...]
+
+Because both [ActionScript](features/as3.html) and JavaScript are based on the
same language, ECMAScript, most code you write in AS translates well to JS. One
significant difference is that AS uses the concepts of classes and objects to
structure how your code functions, while pure JavaScript does not have those
concepts. When you get ready to compile and run your application, the Royale
compiler translates AS-specific code into JS code organized into
pseudo-classes, which then run just [...]
That takes care of pretty much everything except the user interface. For that,
Royale provides a set of UI containers and controls that do the work that the
pure Flex containers and controls required the Flash engine to do.
## Status
+
Adobe Royale 0.9.1 was released in February, 2018. It is roughly of beta
quality. The latest release is always available on the *Download* tab of this
site.
Our project does not have a roadmap. As with most Apache projects, Royale is
largely staffed by devoted volunteers. Rather than having a project owner who
directs development, contributors come to agreement as a group about what they
will work on next. Decisions are based on a combination of contributor skills
and interests, and feature requests we receive from both Apache Flex and Royale
users.