<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <title>HTML5  - Part 1: Video of Getting Started with HTML5 Applications</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
        <meta name="description" content="A screencast that introduces the basics of HTML5 support in NetBeans IDE">
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
    </head>
    <body>

<!--
Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
-->

        <h1>HTML5  - Part 1: Video of Getting Started with HTML5 Applications</h1>

        <table>
            <tr>
                <td class="valign-top">

                    <p>This screencast introduces the support in NetBeans IDE for developing HTML5 applications.
                    This screencast demonstrates how to use wizards in the IDE to create a 
                    an HTML5 project and how to use the Chrome browser with the NetBeans extension 
                    to help you view your project layout on various screen sizes.
                    </p>
                    
                    
                    <p>Author: Ken Ganfield<br>Time: 8:05</p>

                    <p><a href="http://bits.netbeans.org/media/html5-gettingstarted-final-screencast.mp4">Download / Watch full size</a> (44 MB)</p>


                    
                </td>

                <td width="486" class="valign-top align-center">

 <script src="/images_www/js/mediaplayer-5.9/jwplayer.js" type="text/javascript"></script>                   
    <div id="player" >
        <center>
	    <div id="flashContent"></div>
        </center>
    </div>
    <script type="text/javascript">
	$(function(){
	    var targetFile='http://bits.netbeans.org/media/html5-gettingstarted-final-screencast.mp4';
		jwplayer('flashContent').setup({
	                'id': 'flashContentId',
	                'width': '530',
	                'height': '340',
	                'autostart': 'true',
	                'file': targetFile,
	                'controlbar':{position:'bottom'},
	                'modes': [
	                      {type: 'html5'},
	                      {type: 'flash', src: '/images_www/js/mediaplayer-5.9/player.swf'},
	                      {type: 'download'}
	                         ]
	           });	
	});
    </script>


                    </td>
            </tr>
            
            <tr>
                <td colspan="2">
                    <p>For more about working with HTML5 applications in NetBeans IDE, watch the following screencasts.</p>
                    <ul>
                        <li><a href="html5-css-screencast.html"> HTML5 - Part 2: Working with CSS Style Sheets in HTML5 Applications</a></li>
                        <li><a href="html5-javascript-screencast.html"> HTML5 - Part 3: Testing and Debugging JavaScript in HTML5 Applications</a></li>
                    </ul>
                    
                    <br style="clear:both;">
                    <div class="feedback-box">
                        <a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Video%20of%20Getting%20Started%20with%20HTML5%20Applications">Send Feedback on This Tutorial</a>
                    </div>
                    <br style="clear:both;">
                </td>
            </tr>
        </table>
        <h2>Related links</h2>

        <ul>
            <li>Demo:<a href="html5-css-screencast.html"> HTML5 - Part 2: Working with CSS Style Sheets in HTML5 Applications</a></li>
            <li>Demo:<a href="html5-javascript-screencast.html"> HTML5 - Part 3: Testing and Debugging JavaScript in HTML5 Applications</a></li>
            <li><a href="../webclient/html5-gettingstarted.html">Getting Started with HTML5 Applications </a></li>
            <li><a href="../webclient/html5-editing-css.html">Working with CSS Style Sheets in HTML5 Applications</a></li>
            <li><a href="../webclient/html5-js-support.html">Debugging and Testing JavaScript in HTML5 Applications</a></li>
            <li><a href="http://wiki.netbeans.org/HTML5">HTML5 Support in NetBeans IDE wiki page</a></li>
            <li><a href="../../trails/php.html">PHP and HTML5 Learning Trail</a></li>
        </ul>

    </body>
</html>
