JavaScript a böngészőben

Slides:



Advertisements
Hasonló előadás
HTML enhanced for web apps! Fodor Krisztián
Advertisements

JQuery 8. előadás.
Bevezetés a jQuery használatába
JQuery Kocsis Roland
JavaScript.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Stílus, mesteroldal, témák
STÍLUSOK Tulajdonságok és értékek. Színek megadási módjai H1 {color: #CCF150} H1 {color: rgb(204,241,80)} H1 {color: rgb(80%,95%,30%)} H1 {color: red}
Grafika a programban Készítette: Pető László. Bevezetés Valójában nem a célobjektumra rajzolunk, hanem annak festővászon területére (canvas). Csak olyan.
Leírónyelvek: HTML és XHTML
© BZ, 2006Stíluslapok használata1 Váltsunk stílust! Stíluslapok a webszerkesztésben.
Hernyák Zoltán XML és HTML.
Készítette: Nagy-Szakál Zoltán 2007.
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem
PHP Webprogramozás alapjai
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
Kliensoldali Programozás
Lénárt Anett egyetemi adjunktus - PTE PMMK Rendszer- és Szoftvertechnológia Tanszék Előadás JavaScript Tananyag: W eb - programozás.
Számítógépes Grafika 1. gyakorlat Programtervező informatikus (esti)‏ 2009/2010 őszi félév.
JavaScript a gyakorlatban. 7. Gyakorlat DHTML  Fa-struktúrájú menük létrehozása  Legördülő menük létrehozása.
JavaScript a gyakorlatban
JavaScript a gyakorlatban
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Multimédiás programok készítése Macromedia Director rendszerben 2. előadás Készítette: Kosztyán Zsolt
CSS.
Orovecz János Tartalomjegyzék  Az Ajax története  HTTP-kérések és válaszok  XMLHttp-kérések  Egyéb Ajax technika  XML.
Számítógépes Grafika 1-2. gyakorlat Programtervező informatikus (esti)‏ 2011/2012 őszi félév.
XHTML – a tanultak összefoglalása
JavaScript a gyakorlatban Gyakorlat DHTML  Rétegek szabályozása  HTML-elemek dinamikus változtatása.
A <DIV> tag és formázás CSS-sel
Objektum orientált programozás a gyakorlatban
CSS A CSS bemutatása.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Script nyelvek alkalmazása a webkartográfiában 1/14 Script nyelvek alkalmazása a webkartográfiában Gede Mátyás MFTTT, március 22.
Delphi Készítette: Rummel Szabolcs Elérhetőség:
Hyper Text Markup Language
Web-grafika II (SVG) 7. gyakorlat Kereszty Gábor.
HTML 2. Űrlapok
További lehetőségek Weblapok programozása. Nyelvek csoportosítása Leíró nyelv (HTML, XML, …) Programozási nyelv  Szerver oldali (PHP, ASP, …)  Kliens.
XML Mi az XML?  Extensible Markup Language  Kiterjeszthető jelölő nyelv  Adatok, adatstruktúrák leírására szolgál  A HTML és az SGML tapasztalataira.
Készítette: Turócziné Kiscsatári Nóra
Illés Zoltán ELTE Informatikai Kar
Web fejlesztés II. Illés Zoltán ELTE Informatikai Kar
Egyéb interpreterek Windows Script Host Internet Explorer Hypertext application.
Spanyolország gyöngyszeme: GRANADA Egy hobby portál kivitelezése.
Weblapkészítés alapjai
Vizualizáció és képszintézis Sugárkövetés (Dart + GLSL) Szécsi László.
Számítógépes Grafika 3. gyakorlat Programtervező informatikus (esti)‏ 2009/2010 őszi félév.
Weboldalba ágyazott interaktív feladatok GeoGebra módra Papp-Varga Zsuzsanna ELTE IK Média- és Oktatásinformatika Tanszék
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Windows Forms alkalmazás készítése Czigléczky Gábor 2009.
A <DIV> tag és formázás CSS-sel
Informatikai rendszerek
Informatikai rendszerek
Alkalmazott Informatikai Tanszék
Szécsi László 3D Grafikus Rendszerek 17. előadás
Web Technológiák HTML 4.01 World Wide Web Consortium
Script nyelvek előadás
Asynchronous Javascript And XML
Fejlett Programozási Technikák 2.
„Designer-barát” játéklogika
Technológiák összehasonlítása J2EE - PHP
CSS Cascading Style Sheet HTML.
YUI február YUI szeptember YUI3
Vizualizáció és képszintézis
Multiplayer böngészőben
Cascading Style Sheet.
Bevezetés a JQuery használatába
Html parancsok.
JavaScript a böngészőben
Előadás másolata:

JavaScript a böngészőben Szécsi László 3D Grafikus Rendszerek 2. előadás

HTML head az oldal kitölti az ablakot <!DOCTYPE html> <html> <head> <title>3D Grafikus Rendszerek</title> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="css/style.css" /> </head> elemek stílusai itt lesznek folyt köv.

HTML body <body> <div id="container"> ez a cimke (tag) egy szakaszt definiál az oldalon ez egy HTML elem <body> <div id="container"> <canvas id="canvas"></canvas> <div id="overlay"></div> </div> <script src="js/keycodes.js"></script> <script src="js/vx.js"></script>      <script src="js/shaders/shaderSource.js"></script> <script src="js/shaders/idle_vs.essl"></script> <script src="js/shaders/solid_fs.essl"></script>   <script src="js/Shader.js"></script> <script src="js/Program.js"></script> <script src="js/QuadGeometry.js"></script> <script src="js/Texture.js"></script> <script src="js/Scene.js"></script> <script src="js/App.js"></script> </body> </html>   vászon, erre rajzol a WebGL ezt a HTML szakaszt szeretnénk a vászon főlé rajzolni tartalmát a kódból módosítva könnyen jeleníthetünk meg szöveget JavaScript forráskód forrásfileok

CSS #container * { margin: 0; padding: 0; } #container { position: absolute; width: 100%; height: 100%; top: 0; left: 0; bottom: 0; right: 0; overflow: hidden; } töltse ki az oldalt nem kérünk scrollbart

CSS #canvas, #overlay #overlay { position: absolute; left: 10px; top: 10px; z-index: 20; } #canvas { width: 100%; height: 100%; top: 0; left: 0; bottom: 0; right: 0; z-index: 10; overflow: hidden; legyenek ugyanott felül a szöveg nem kérünk scrollbart

DOM Document Object Model HTML címkék hierarchiája mint szülő-gyerek kapcsolatban álló objektumok rendszere győkér: document firstChild nextSibling getElementById

Window window globális objektum ennek tulajdonsága minden globális a dokumentumot megjelenítő ablak absztrakciója > document.defaultView.document === document; < true

JavaScript belépési pont? valójában simán végrehajtódik az összes beágyazott script soronként, az elejétől kezdve változó- és függvénydefiníciók lefutnak de az oldal teljes betöltése után kezdődhet az érdemi kód futása

Oldal betöltése eseményfigyelő window.addEventListener('load', function() { var canvas = document.getElementById("canvas"); var overlay = document.getElementById("overlay"); overlay.innerHTML = "WebGL"; this.canvas.width = this.canvas.clientWidth; this.canvas.height = this.canvas.clientHeight; new App(canvas, overlay); }); innentől ez az objektum intéz mindent

App konstruktor – gl context var App = function(canvas, overlay) { this.canvas = canvas; this.overlay = overlay; this.gl = canvas.getContext("experimental-webgl"); if (this.gl == null) { console.log( "No WebGL!" ); return; } this.gl.viewport(0, 0, this.canvas.width, this.canvas.height);

App konstruktor – eseményfigyelők virtuális világot reprezentáló objektum this.scene = new Scene(this.gl, this.canvas); var theApp = this; document.onkeydown = function(event) { theApp.scene.keyDown(event); }; // onkeyup ugyanígy canvas.onmousedown = function(event) { theApp.scene.mouseDown(event); }; // többi egéresemény ugyanígy window.addEventListener('resize', function() { theApp.scene.windowResized(); }); lokális változó, hogy a zárvány elkapja ő itt a zárvány a zárványban a this == window

App konstruktor – update loop window.requestAnimationFrame(function() { theApp.update(); }); }

App update – update loop globális változó, betöltés alatt álló textúrák, modellek tárolója var pendingResources = {}; App.prototype.update = function() { var pendingResourceNames = Object.keys(pendingResources); if(pendingResourceNames.length === 0) { // animate and draw scene this.scene.update(this.gl); overlay.innerHTML = "Ready."; } else { overlay.innerHTML = "Loading: " + pendingResourceNames; } var theApp = this; window.requestAnimationFrame(function() { theApp.update(); }); ha minden betöltve, animáljuk és rajzoljuk a virtuális világot jöhet a következő frame

Billentyűesemények feldolgozása nem a lenyomásra (typematic rate!) vagy felengedésre akarunk reagálni hanem minden frameben tudni, mi van épp lenyomva keysPressed objektum tualjdonságértékek true/false: le van-e nyomva tulajdonságnév a gomb neve az S billentyű neve "S" legyen, ha lehet... de az onkeydown eventjében keyCode van (S: 83???) keyCodes.js : globális keyboardMap tömb elemek a string nevek, pl. "S", "DELETE", "SPACE", "F1"

Billentyűesemények feldolgozása var App = function(canvas, overlay) { ... this.keysPressed = {}; var theApp = this; document.onkeydown = function(event) { theApp.keysPressed[keyboardMap[event.keyCode]] = true; }; document.onkeyup = function(event) { theApp.keysPressed[keyboardMap[event.keyCode]] = false; }; ... } App.prototype.update = function() { ... this.scene.update(this.gl, this.keysPressed);