<?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.
//
////////////////////////////////////////////////////////////////////////////////
-->
<createjs:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
					  xmlns:local="*"
					  xmlns:js="library://ns.apache.org/royale/basic"   
					  xmlns:createjs="library://ns.apache.org/royale/createjs"
					  xmlns:models="models.*" 
					  xmlns:controllers="controllers.*"
					  initialize="MyModel(model).labelText='Hello World'"
					  >
	
	<!--
	This example shows how to use CreateJS for the web framework. While the example
	shows only a label and button, you can extend the pattern to include other
	controls.
	
	Once you have compiled the application into JavaScript using the Royale Compiler, you
	must do two more things to make the example work:
	
	1. Copy the CreateJS easeljs JavaScript library into the js-debug or js-release directory
	so it available when the application is opened by the browser.
	
	2. Modify the index.html file that the compile created so that includes the CreateJS
	easeljs library. For example: <script src="./lib/easeljs-0.6.0.min.js"></script>
	-->
	
	<createjs:valuesImpl>
		<js:SimpleCSSValuesImpl />
	</createjs:valuesImpl>
	<createjs:initialView>
		<local:MyInitialView />
	</createjs:initialView>
	<createjs:model>
		<models:MyModel />
	</createjs:model>
	<createjs:controller>
		<controllers:MyController />
	</createjs:controller>
	
</createjs:Application>
