SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
JavaFX: Incorporating Media
and animation
   Raghavan N. Srinivas
   Technology Evangelist
   Sun Microsystems, Inc.     1
Speaker

> Rags
  ● CTO, Technology Evangelism
  ● Developing and deploying Java apps. for a decade
    (trying to anyway)
  ● HOL track lead for JavaOne; Author of JavaFX
    HOL for JavaOne 2007 and 2008




                                                       2
Agenda
• JavaFX Platform Overview
• JavaFX Script Language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 update 10 and Deployment basics
• Tools, Summary and References




                                              3
JavaFX Vision
JavaFX is THE platform for creating and delivering
            Rich Internet Applications
        across all the screens of your life




      JavaFX is Powered by Java

                                                     4
JavaFX roadmap
Desktop Product Line   JavaFX Desktop
                          (Fall 2008)

Mobile Product Line                 JavaFX Mobile
                                        (Spring 2009)
                                                  JavaFX TV
TV Product Line                                  (Summer 2009)


Other Platforms                         With Partner platforms/OSs



                                                                     5
JavaFX Script Programming Language
• Declarative, statically-typed scripting language
• Facilitates rapid GUI development
• Many cool, interesting language features
• Runs on Virtual Machine for the Java™ platform
• Deployment options same as Java programs
• Fully utilizes Java class libraries behind the scenes
• For content designers and Media engineers
• binding – the swiss army knife



                                                          6
Timing, Jgoodies Framework
public ControlPanel(AnimationView animationView) {
  this.animationView = animationView;
  setLayout(new GridBagLayout());
  intFormat = NumberFormat.getNumberInstance();
  intFormat.setParseIntegerOnly(true);
  doubleFormat = NumberFormat.getNumberInstance();
  setupCycleGUI();
  setupEnvelopeGUI();
  setupPropertySetterGUI();
  setupAccelerationGUI();
  setupActionsGUI();
  // Animation View
  JPanel panel = new JPanel(new BorderLayout());
  panel.add(animationView);
  ...
}
                                                     7
JavaFX code : Animation for everyone else
 var t = Timeline {
     repeatCount: bind rep
     autoReverse: bind autoRevCheckBox.selected
     toggle: bind toggleCheckBox.selected
     keyFrames: [
     KeyFrame {
         time: 0ms
         values: [
            x => 0,
            y => 0]
     },
     KeyFrame {
         time: 2000ms
         values: [
            x => 200 tween interpolate,
            y => 200 tween interpolate]
     }
     ]
 };                                               8
How to get started: Software Requirements

• Java SE 6 Update 10 SDK
• NetBeans IDE 6.1 with JavaFX Plugin OR pre-
  bundled NetBeans IDE 6.1 with JavaFX
• JavaFX Preview SDK (Already bundled with the
  plugin)
• Mozilla Firefox 3, Safari, Internet Explorer or
  Google Chrome




                                                    9
NetBeans IDE 6.1

• JavaFX Plugin for NetBeans IDE 6.1 OR pre-
  bundled NetBeans IDE 6.1 for JavaFX
  > Support development cycle
     ● edit, compile, run, test
  > JavaFX project system
  > Includes automatic installation of JavaFX Preview SDK




                                                            10
Components – JavaFX Preview SDK

                          /lib
                     javafxc.jar
      /docs         javafxrt.jar
                   javafxgui.jar       /bin
                javafx-swing.jar   javafxc.exe
                    Scenario.jar    javafx.exe
                  Decora-D3D.jar
     /samples      Decora-HW.jar
SmokeScreenSample       jmc.jar
    StopWatch          jogl.jar
                      jaxb*.jar


                                                 11
Command Line Development
•   include <javafx-sdk>/bin in PATH
•   javafxc to compile
•   javafx to run
•   Relevant library files in <javafx-sdk>/lib are
    automatically included in classpath as necessary.
    Rest can be included with the -classpath option
    > With packages
      ● javafxc -d . simple/Main.fx
      ● javafx simple.Main
    > Without packages
      ● javafxc Main.fx
      ● javafx Main



                                                        12
Agenda
• JavaFX Platform Overview
• JavaFX Script Language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment Basics
• Summary and References




                                    13
Binding in JavaFX Script
  > Cause and Effect—Responding to change
  > The JavaFX Script bind operator—Allows
      dynamic content to be expressed
      declaratively
  >   Dependency-based evaluation of any
      expression
  >   Automated by the system—Rather than
      manually wired by the programmer
  >   You just declare dependencies and the
      JavaFX runtime takes care of performing
      updates when things change
  >   Eliminates listener patterns
                                                14
Example: Binding in JavaFX Script
import javafx.application.*;
import javafx.ext.swing.*;
Frame {
  var a: String = quot;namequot;;
  title: quot;Hello Worldquot;
  width: 400
  stage: Stage {
    content: ComponentView {
        component: BorderPanel {
          bottom: TextField { text: bind a with inverse}
          top: Label { text: bind quot;Hello {a}quot; }
        }
    }
  }
  visible: true
}




                                                           15
More Binding Examples
public class User {
    public attribute userid: String;
    public attribute password: String;
}
// Create sequence
var users = [
    User {userid: quot;ragsquot; password: quot;everestquot; },
    User {userid: quot;sridharquot; password: quot;hyderabadquot; },
    User {userid: quot;inyoungquot; password: quot;koreaquot; },
];
// Bind list to sequence of users
var list = List{items: bind for (user in users)
              ListItem {text: bind quot;{user.userid}quot;}};

                                                        16
Agenda
• JavaFX Platform Overview
• JavaFX Script language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment basics
• Summary and References




                                    17
Animation - javafx.animation.*

               KeyFrame
                action
  TimeLine
               canSkip
autoReverse               InterPolator
                 time
 INDEFINITE
              timelines
  keyFrames                DISCRETE
                values
repeatCount                EASEBOTH
   running                   EASEIN
    toggle                  EASEOUT
                             LINEAR




                                         18
Animation
• Timelines handles the animation in JavaFX
• Timelines are first-class citizen in the language
    along with the duration time constants (1s, 10s)
•   They can have one or more KeyFrames
•   Methods: start(), stop(), pause(), resume()
•   Properties: autoReverse, repeatCount, toggle
•   BigDeal: Timelines are nestable!




                                                       19
Animation
var t = Timeline {
    repeatCount: bind rep
    autoReverse: bind autoRevCheckBox.selected
    toggle: bind toggleCheckBox.selected
    keyFrames: [
    KeyFrame {
        time: 0ms
        values: [
           x => 0,
           y => 0]
    },
    KeyFrame {
        time: 2000ms
        values: [
           x => 200 tween interpolate,
           y => 200 tween interpolate]
    }
    ]
};                                               20
The “=>” literal constructor

values: [x => 100 tween Interpolator.LINEAR]

is equivalent to

values: [KeyValue {target: pX, value: 100,
     interpolate: Interpolator.LINEAR}]

where pX is “pointer of x” (obtained magically :-))




                                                      21
Animation Controls
var buttons =
   FlowPanel {
     content: [
       Button {
          text: quot;Startquot;
          action: function():Void { t.start(); }
       },
       Button {
          text: quot;Stopquot;
          action: function():Void { t.stop(); }
       },
       Button {
          text: quot;Pausequot;
          action: function():Void { t.pause(); }
       }
     ]
};

                                                   22
JavaFX Animation demo




                        23
Agenda
• JavaFX Platform Overview
• JavaFX Script language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment basics
• Summary and References




                                    24
Design Goals
• Media Playback is of primary importance
• Simple API: only a few lines of coded needed
• Cross platform A/V format required
• Native support also desirable
  > “Mash ups”
  > Viewing local media
• Zero Configuration plug in support
  > Drop in format support
• Going beyond rectangular video
  > Support lightweight rendering
  > Integration with Scenegraph, FXScript, and 3D APIs

                                                         25
Architectural Overview, JMC
• Java Media Components
 > JMediaPlayer
    ● A JComponent that provides media playback
 > JMediaPane
    ● A JComponent that provided media playback
     without UI controls
 > MediaProvider
   ● Low level media player
 > Media Class
   ● For getting information about the media
        – Tracks
        – Metadata
 > Events and Exceptions


                                                  26
Code Sample: Java Player
  class MediaDemo extends JFrame {
     MediaDemo() {
         JmediaPlayer mediaPlayer;
         try {
             mediaPlayer = new JMediaPlayer(
              new URI(quot;movie.movquot;));
         } catch (Exception e) {
             System.out.println(quot;Error opening mediaquot; + e);
             System.exit(0);
         }
         add(mediaPlayer);
         mediaPlayer.play();
         setVisible(true);
     } ...

                                                              27
Media - javafx.scene.media.*

               MediaPlayer
              media
   Media
              autoPlay
source                          MediaView
              volume
resolutionX                    fullScreen
              REPEAT_FOREVER
resoultionY                    mediaPlayer
                               clip
                               rotate
                               transform
                               effect




                                             28
Media in JavaFX
• Media classes are part of javafx.scene.media
  package
• Media, MediaPlayer and MediaView
  > MediaView is a Node
    ● has a MediaPlayer
     ● MediaPlayer has a Media object.
  > MediaView may be rotated, translated, sheared, and
    have filter effects applied to it.
  > Multiple views may be bound to single player.
• MediaTimers allow functions to be invoked at key
  points in Media.
• Other media events may be triggered
                                                         29
Code Sample: JavaFX™ MediaPlayer
var media = Media{source:”movie.mov”};
var player = MediaPlayer{media: media, autoPlay:true};
var mediaView = MediaView{mediaPlayer: player};

// To enable audio only, don't create MediaView

MediaView{mediaPlayer:player,
    onMouseClicked: function(e) {
        if (player.paused) {
            player.play();
        } else {
            player.pause();
        }
     }
     // Add a clip and rotate
     clip: c;
     rotate: 90;
}
                                                         30
JavaFX Media demo




                    31
Agenda
• JavaFX Platform Overview
• JavaFX Script language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment basics
• Tools, Summary and References




                                    32
Code Sample: JavaFX™ from Java
// evaluate the FX script

Object fxobject = scrEng.eval(script.toString());

// you could use the FXAdapter method
// or use pure reflection

Method method=
    fxobject.getClass().getMethod(quot;getJComponentquot;);

JComponent component = (Jcomponent)
    method.invoke(fxobject);

frame.add(component);



                                                      33
Agenda
• JavaFX Platform Overview
• JavaFX Script language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment basics
• Tools, Summary and References




                                    34
Consumer JRE

  Project Hamburg

Java SE 6, Update X

Java SE 6, Update N

Java SE 6, Update 10

                       35
Features
• Java Quick Starter
  > Faster cold starts on most systems
• Java Kernel
  > Shorter download + install + launch times
• Deployment Toolkit
  > Simplifies using Java technology in a web browser




                                                        36
Quickstarter
• “Coldstart” vs. “Warmstart”
• Root problem:
  > Large files + Disk access speed
• Solution: QuickStarter
  > Pre-warm the disk cache
• Note: QuickStarter != running VM
  > Smaller footprint, more targeted disk pages




                                                  37
Install Time
• Java's not small
  > J2SE 5.0: 7.1 MB
  > Java SE 6: 10+ MB
  > rt.jar: 40+ MB on disk
• Lots of bits being moved around
  > Download, Unzip, Unpack200, Copying
• Solution: Java Kernel
  > Download only core dependencies first
  > Launch application
  > Download and install in the background



                                             38
JRE sizes




            39
Look Mom! We Shrunk the JRE




                              40
Architectural Overview


                         Java Applet 1


                         Java Applet 2


   HTML-Webpage          Java Applet 3




                                         41
Architectural Overview




                           Fat Client JVM 1
                                  OS Process 2
        Thin Server JVM


        OS Process 1
                          Fat Client JVM 2
                                OS Process 3
                                                 42
Applets Reloaded
• Ground-up rewrite of the Java Plug-In
  > Mostly in Java
• Advanced new architecture
  > Out-of-process execution
• Major benefits
  > Improved reliability
  > Support for larger Java heap sizes for applets
  > Better support for signed applets on Windows Vista
  > Support for per-applet JVM command-line arguments
  > Support for multiple simultaneous JRE versions



                                                         43
Agenda
• JavaFX Platform Overview
• JavaFX Script Language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment basics
• Tools, Summary and References




                                    44
Ajax and Java compared (for RIA)


             Ajax                         Java

     • Javascript-based             • Java-based
     • No plugins                   • Plugins required
     • Simple effects, transition   • Complex effects,
       and windows                   transition, windows
     • Does not work in             • Can work in
      disconnected mode              disconnected mode
     • Mobile phones?               • Plans for mobile phones
     • Designer/Developer           • Designer/Developer
      delineation is blurred         delineation can be clear


                                                                45
JavaFX Preview SDK

• JavaFX Preview SDK since 31st July 2008
  > http://openjfx.java.sun.com
  > http://www.javafx.com
  > available for Windows and MacOS
• NetBeans 6.1 IDE and JavaFX Plugin
  > Available now and since 31st July 2008
• Desktop SDK 1.0 later this year
• Project Nile



                                             46
Project Nile (Designer + Developer)


•     Photoshop and Illustrator plugins
•     FXD File Format
•     FXD Viewer
•     SVG Converter
•     Designer / Developer Collaboration


                                           47
JavaFX Summary

• JavaFX is a Platform for creating rich internet
    applications (RIA) with immersive media and
    content, across all the screens of your life
•   JavaFX has familiarity with Java developers
    aimed at designers
•   Easier to write UI and Graphics programs
•   Timelines make animations very easy
•   Binding and other features make it easier
•   Possible to use JavaFX Script in Java
•   Java SE 6 update 10 is the deployment platform


                                                     48
JavaFX References

• http://javafx.com/
• https://openjfx.dev.java.net/
• http://openjfx-compiler.dev.java.net
• http://scenegraph.dev.java.net
• http://java.sun.com/javafx/
•   http://java.sun.com/javafx/tutorials   /project_nile_integrating_graphics/
• http://openjfx.java.sun.com/current-build/doc/index.html
• http://www.netbeans.org



                                                                                 49
Thank You!!

Raghavan N. Srinivas
Incorporating Media and
animation into JavaFX and
Java

rags@sun.com




                        50

Weitere ähnliche Inhalte

Was ist angesagt?

JavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemJavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemAlexander Casall
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Vadym Kazulkin
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New FeaturesAli BAKAN
 
Enabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition LanguageEnabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition Languageelliando dias
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Yuji Kubota
 
JShell: An Interactive Shell for the Java Platform
JShell: An Interactive Shell for the Java PlatformJShell: An Interactive Shell for the Java Platform
JShell: An Interactive Shell for the Java PlatformJavaDayUA
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMYuji Kubota
 
Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureJavaDayUA
 
Java 9 Modularity and Project Jigsaw
Java 9 Modularity and Project JigsawJava 9 Modularity and Project Jigsaw
Java 9 Modularity and Project JigsawComsysto Reply GmbH
 
Java fx smart code econ
Java fx smart code econJava fx smart code econ
Java fx smart code econTom Schindl
 
Developing Plug-Ins for NetBeans
Developing Plug-Ins for NetBeansDeveloping Plug-Ins for NetBeans
Developing Plug-Ins for NetBeanselliando dias
 
Introduction maven3 and gwt2.5 rc2 - Lesson 01
Introduction maven3 and gwt2.5 rc2 - Lesson 01Introduction maven3 and gwt2.5 rc2 - Lesson 01
Introduction maven3 and gwt2.5 rc2 - Lesson 01rhemsolutions
 
Java 9 New Features
Java 9 New FeaturesJava 9 New Features
Java 9 New FeaturesAli BAKAN
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New FeaturesHaim Michael
 

Was ist angesagt? (20)

What's new in Java 11
What's new in Java 11What's new in Java 11
What's new in Java 11
 
JavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemJavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and Ecosystem
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
 
drmaatutggf12
drmaatutggf12drmaatutggf12
drmaatutggf12
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New Features
 
Enabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition LanguageEnabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition Language
 
OSGi Presentation
OSGi PresentationOSGi Presentation
OSGi Presentation
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15
 
Desiging for Modularity with Java 9
Desiging for Modularity with Java 9Desiging for Modularity with Java 9
Desiging for Modularity with Java 9
 
JShell: An Interactive Shell for the Java Platform
JShell: An Interactive Shell for the Java PlatformJShell: An Interactive Shell for the Java Platform
JShell: An Interactive Shell for the Java Platform
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DM
 
Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and Architecture
 
Extending and scripting PDT
Extending and scripting PDTExtending and scripting PDT
Extending and scripting PDT
 
Java 9 Modularity and Project Jigsaw
Java 9 Modularity and Project JigsawJava 9 Modularity and Project Jigsaw
Java 9 Modularity and Project Jigsaw
 
Java fx smart code econ
Java fx smart code econJava fx smart code econ
Java fx smart code econ
 
Developing Plug-Ins for NetBeans
Developing Plug-Ins for NetBeansDeveloping Plug-Ins for NetBeans
Developing Plug-Ins for NetBeans
 
Introduction maven3 and gwt2.5 rc2 - Lesson 01
Introduction maven3 and gwt2.5 rc2 - Lesson 01Introduction maven3 and gwt2.5 rc2 - Lesson 01
Introduction maven3 and gwt2.5 rc2 - Lesson 01
 
Java 9 New Features
Java 9 New FeaturesJava 9 New Features
Java 9 New Features
 
Intro To OSGi
Intro To OSGiIntro To OSGi
Intro To OSGi
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New Features
 

Andere mochten auch

Web 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With JsfWeb 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With Jsfrajivmordani
 
Presentaciòn Plataforma Urbana
Presentaciòn Plataforma UrbanaPresentaciòn Plataforma Urbana
Presentaciòn Plataforma Urbanaguest94b8ce
 
Recuperación de Información Distribuida y Paralela
Recuperación de Información Distribuida y ParalelaRecuperación de Información Distribuida y Paralela
Recuperación de Información Distribuida y ParalelaDavid Ramírez
 
Slide Maria Rosa
Slide Maria RosaSlide Maria Rosa
Slide Maria RosaDalia88
 
Leptospirosis
LeptospirosisLeptospirosis
Leptospirosisaylusas
 
Прогулки по Петербургу. Часть 5.
Прогулки по Петербургу. Часть 5.Прогулки по Петербургу. Часть 5.
Прогулки по Петербургу. Часть 5.innash
 
Ajax World2008 Eric Farrar
Ajax World2008 Eric FarrarAjax World2008 Eric Farrar
Ajax World2008 Eric Farrarrajivmordani
 
08 10 12 Meebo Ajaxworld Preso
08 10 12 Meebo Ajaxworld Preso08 10 12 Meebo Ajaxworld Preso
08 10 12 Meebo Ajaxworld Presorajivmordani
 
Ajax Integration Guide
Ajax Integration GuideAjax Integration Guide
Ajax Integration Guiderajivmordani
 
I Phone Presentation Jan Linden Gips
I Phone Presentation Jan Linden GipsI Phone Presentation Jan Linden Gips
I Phone Presentation Jan Linden Gipsrajivmordani
 
Ajax World West I Phone Summit
Ajax World West I Phone SummitAjax World West I Phone Summit
Ajax World West I Phone Summitrajivmordani
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008rajivmordani
 
Ajax World Oct2008 Jrd
Ajax World Oct2008 JrdAjax World Oct2008 Jrd
Ajax World Oct2008 Jrdrajivmordani
 
Communi Gate Web 3 0 Ajax World 08 V2
Communi Gate Web 3 0 Ajax World 08 V2Communi Gate Web 3 0 Ajax World 08 V2
Communi Gate Web 3 0 Ajax World 08 V2rajivmordani
 
Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081rajivmordani
 

Andere mochten auch (20)

Web 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With JsfWeb 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With Jsf
 
Presentaciòn Plataforma Urbana
Presentaciòn Plataforma UrbanaPresentaciòn Plataforma Urbana
Presentaciòn Plataforma Urbana
 
Vida De Pablo
Vida De PabloVida De Pablo
Vida De Pablo
 
Recuperación de Información Distribuida y Paralela
Recuperación de Información Distribuida y ParalelaRecuperación de Información Distribuida y Paralela
Recuperación de Información Distribuida y Paralela
 
Slide Maria Rosa
Slide Maria RosaSlide Maria Rosa
Slide Maria Rosa
 
Leptospirosis
LeptospirosisLeptospirosis
Leptospirosis
 
Прогулки по Петербургу. Часть 5.
Прогулки по Петербургу. Часть 5.Прогулки по Петербургу. Часть 5.
Прогулки по Петербургу. Часть 5.
 
Ajax World2008 Eric Farrar
Ajax World2008 Eric FarrarAjax World2008 Eric Farrar
Ajax World2008 Eric Farrar
 
08 10 12 Meebo Ajaxworld Preso
08 10 12 Meebo Ajaxworld Preso08 10 12 Meebo Ajaxworld Preso
08 10 12 Meebo Ajaxworld Preso
 
Ajax Integration Guide
Ajax Integration GuideAjax Integration Guide
Ajax Integration Guide
 
Design Based Dev
Design Based DevDesign Based Dev
Design Based Dev
 
I Phone Presentation Jan Linden Gips
I Phone Presentation Jan Linden GipsI Phone Presentation Jan Linden Gips
I Phone Presentation Jan Linden Gips
 
Ajax World West I Phone Summit
Ajax World West I Phone SummitAjax World West I Phone Summit
Ajax World West I Phone Summit
 
Ajax World Fall08
Ajax World Fall08Ajax World Fall08
Ajax World Fall08
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008
 
Ajax World Oct2008 Jrd
Ajax World Oct2008 JrdAjax World Oct2008 Jrd
Ajax World Oct2008 Jrd
 
Communi Gate Web 3 0 Ajax World 08 V2
Communi Gate Web 3 0 Ajax World 08 V2Communi Gate Web 3 0 Ajax World 08 V2
Communi Gate Web 3 0 Ajax World 08 V2
 
Jsf Ajax
Jsf AjaxJsf Ajax
Jsf Ajax
 
Ajaxworld West 08
Ajaxworld West 08Ajaxworld West 08
Ajaxworld West 08
 
Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081
 

Ähnlich wie JavaFX: Incorporating Media and Animation

Hinkmond's JavaFX Mobile Dojo
Hinkmond's JavaFX Mobile DojoHinkmond's JavaFX Mobile Dojo
Hinkmond's JavaFX Mobile DojoStephen Chin
 
Ten Man-Years of JavaFX: Real World Project Experiences
Ten Man-Years of JavaFX: Real World Project ExperiencesTen Man-Years of JavaFX: Real World Project Experiences
Ten Man-Years of JavaFX: Real World Project ExperiencesHenrik Olsson
 
Core java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsCore java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsQUONTRASOLUTIONS
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Shankar Gowda
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009shankar_mbn
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Shankar Gowda
 
Learn to Internationalize your Application
Learn to Internationalize your ApplicationLearn to Internationalize your Application
Learn to Internationalize your Applicationshankar_mbn
 
The Brainify App - JavaFx
The Brainify App - JavaFxThe Brainify App - JavaFx
The Brainify App - JavaFxMohd Shamweel
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Tugdual Grall
 
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume LaforgeGroovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume LaforgeGuillaume Laforge
 
Java Fx - Return of client Java
Java Fx - Return of client JavaJava Fx - Return of client Java
Java Fx - Return of client JavaShuji Watanabe
 

Ähnlich wie JavaFX: Incorporating Media and Animation (20)

Visage fx
Visage fxVisage fx
Visage fx
 
JavaFX Overview
JavaFX OverviewJavaFX Overview
JavaFX Overview
 
Os Ramani
Os RamaniOs Ramani
Os Ramani
 
Hinkmond's JavaFX Mobile Dojo
Hinkmond's JavaFX Mobile DojoHinkmond's JavaFX Mobile Dojo
Hinkmond's JavaFX Mobile Dojo
 
Ten Man-Years of JavaFX: Real World Project Experiences
Ten Man-Years of JavaFX: Real World Project ExperiencesTen Man-Years of JavaFX: Real World Project Experiences
Ten Man-Years of JavaFX: Real World Project Experiences
 
Introduction to JavaFX
Introduction to JavaFXIntroduction to JavaFX
Introduction to JavaFX
 
Javalecture 1
Javalecture 1Javalecture 1
Javalecture 1
 
JavaFX Mix
JavaFX MixJavaFX Mix
JavaFX Mix
 
Core java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsCore java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutions
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009
 
Learn to Internationalize your Application
Learn to Internationalize your ApplicationLearn to Internationalize your Application
Learn to Internationalize your Application
 
The Brainify App - JavaFx
The Brainify App - JavaFxThe Brainify App - JavaFx
The Brainify App - JavaFx
 
JavaFX Advanced
JavaFX AdvancedJavaFX Advanced
JavaFX Advanced
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007
 
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume LaforgeGroovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
 
GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6
 
Gain more freedom when migrating from Camunda 7 to 8.pdf
Gain more freedom when migrating from Camunda 7 to 8.pdfGain more freedom when migrating from Camunda 7 to 8.pdf
Gain more freedom when migrating from Camunda 7 to 8.pdf
 
Java Fx - Return of client Java
Java Fx - Return of client JavaJava Fx - Return of client Java
Java Fx - Return of client Java
 

Mehr von rajivmordani

X Aware Ajax World V1
X Aware Ajax World V1X Aware Ajax World V1
X Aware Ajax World V1rajivmordani
 
The Beauty Of Java Script V5a
The Beauty Of Java Script V5aThe Beauty Of Java Script V5a
The Beauty Of Java Script V5arajivmordani
 
Tripit Ajaxworld V5
Tripit Ajaxworld V5Tripit Ajaxworld V5
Tripit Ajaxworld V5rajivmordani
 
Sue Googe Spice Up Ux
Sue Googe Spice Up UxSue Googe Spice Up Ux
Sue Googe Spice Up Uxrajivmordani
 
Social Networking Intranet
Social Networking IntranetSocial Networking Intranet
Social Networking Intranetrajivmordani
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svenssonrajivmordani
 
Server Side Javascript
Server Side JavascriptServer Side Javascript
Server Side Javascriptrajivmordani
 
Slow Cool 20081009 Final
Slow Cool 20081009 FinalSlow Cool 20081009 Final
Slow Cool 20081009 Finalrajivmordani
 
Pushing Datatothe Browserwith Comet Ajax W
Pushing Datatothe Browserwith Comet Ajax WPushing Datatothe Browserwith Comet Ajax W
Pushing Datatothe Browserwith Comet Ajax Wrajivmordani
 
I Phone Dev Summit Prezo Guy Naor Final
I Phone Dev Summit Prezo Guy Naor FinalI Phone Dev Summit Prezo Guy Naor Final
I Phone Dev Summit Prezo Guy Naor Finalrajivmordani
 
Netapp Michael Galpin
Netapp Michael GalpinNetapp Michael Galpin
Netapp Michael Galpinrajivmordani
 
Mike Grushin Developing Ugc Sites That Scale
Mike Grushin    Developing Ugc Sites That ScaleMike Grushin    Developing Ugc Sites That Scale
Mike Grushin Developing Ugc Sites That Scalerajivmordani
 
Good Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas CrockfordGood Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas Crockfordrajivmordani
 
Flying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy ChoneFlying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy Chonerajivmordani
 
Flex Flash And On Demand
Flex Flash And On DemandFlex Flash And On Demand
Flex Flash And On Demandrajivmordani
 
I Phone Dev Summit Lefty 03 07 08
I Phone Dev Summit Lefty 03 07 08I Phone Dev Summit Lefty 03 07 08
I Phone Dev Summit Lefty 03 07 08rajivmordani
 
I Phone Summit Dmeeker Final
I Phone Summit Dmeeker FinalI Phone Summit Dmeeker Final
I Phone Summit Dmeeker Finalrajivmordani
 

Mehr von rajivmordani (20)

X Aware Ajax World V1
X Aware Ajax World V1X Aware Ajax World V1
X Aware Ajax World V1
 
The Beauty Of Java Script V5a
The Beauty Of Java Script V5aThe Beauty Of Java Script V5a
The Beauty Of Java Script V5a
 
Tripit Ajaxworld V5
Tripit Ajaxworld V5Tripit Ajaxworld V5
Tripit Ajaxworld V5
 
Sue Googe Spice Up Ux
Sue Googe Spice Up UxSue Googe Spice Up Ux
Sue Googe Spice Up Ux
 
Social Networking Intranet
Social Networking IntranetSocial Networking Intranet
Social Networking Intranet
 
Ssjs Presentation
Ssjs PresentationSsjs Presentation
Ssjs Presentation
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svensson
 
Server Side Javascript
Server Side JavascriptServer Side Javascript
Server Side Javascript
 
Ria Enterprise
Ria EnterpriseRia Enterprise
Ria Enterprise
 
Slow Cool 20081009 Final
Slow Cool 20081009 FinalSlow Cool 20081009 Final
Slow Cool 20081009 Final
 
Pushing Datatothe Browserwith Comet Ajax W
Pushing Datatothe Browserwith Comet Ajax WPushing Datatothe Browserwith Comet Ajax W
Pushing Datatothe Browserwith Comet Ajax W
 
I Phone Dev Summit Prezo Guy Naor Final
I Phone Dev Summit Prezo Guy Naor FinalI Phone Dev Summit Prezo Guy Naor Final
I Phone Dev Summit Prezo Guy Naor Final
 
Netapp Michael Galpin
Netapp Michael GalpinNetapp Michael Galpin
Netapp Michael Galpin
 
Mike Grushin Developing Ugc Sites That Scale
Mike Grushin    Developing Ugc Sites That ScaleMike Grushin    Developing Ugc Sites That Scale
Mike Grushin Developing Ugc Sites That Scale
 
Good Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas CrockfordGood Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas Crockford
 
Flying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy ChoneFlying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy Chone
 
I Phone Dev
I Phone DevI Phone Dev
I Phone Dev
 
Flex Flash And On Demand
Flex Flash And On DemandFlex Flash And On Demand
Flex Flash And On Demand
 
I Phone Dev Summit Lefty 03 07 08
I Phone Dev Summit Lefty 03 07 08I Phone Dev Summit Lefty 03 07 08
I Phone Dev Summit Lefty 03 07 08
 
I Phone Summit Dmeeker Final
I Phone Summit Dmeeker FinalI Phone Summit Dmeeker Final
I Phone Summit Dmeeker Final
 

Kürzlich hochgeladen

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

JavaFX: Incorporating Media and Animation

  • 1. JavaFX: Incorporating Media and animation Raghavan N. Srinivas Technology Evangelist Sun Microsystems, Inc. 1
  • 2. Speaker > Rags ● CTO, Technology Evangelism ● Developing and deploying Java apps. for a decade (trying to anyway) ● HOL track lead for JavaOne; Author of JavaFX HOL for JavaOne 2007 and 2008 2
  • 3. Agenda • JavaFX Platform Overview • JavaFX Script Language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 update 10 and Deployment basics • Tools, Summary and References 3
  • 4. JavaFX Vision JavaFX is THE platform for creating and delivering Rich Internet Applications across all the screens of your life JavaFX is Powered by Java 4
  • 5. JavaFX roadmap Desktop Product Line JavaFX Desktop (Fall 2008) Mobile Product Line JavaFX Mobile (Spring 2009) JavaFX TV TV Product Line (Summer 2009) Other Platforms With Partner platforms/OSs 5
  • 6. JavaFX Script Programming Language • Declarative, statically-typed scripting language • Facilitates rapid GUI development • Many cool, interesting language features • Runs on Virtual Machine for the Java™ platform • Deployment options same as Java programs • Fully utilizes Java class libraries behind the scenes • For content designers and Media engineers • binding – the swiss army knife 6
  • 7. Timing, Jgoodies Framework public ControlPanel(AnimationView animationView) { this.animationView = animationView; setLayout(new GridBagLayout()); intFormat = NumberFormat.getNumberInstance(); intFormat.setParseIntegerOnly(true); doubleFormat = NumberFormat.getNumberInstance(); setupCycleGUI(); setupEnvelopeGUI(); setupPropertySetterGUI(); setupAccelerationGUI(); setupActionsGUI(); // Animation View JPanel panel = new JPanel(new BorderLayout()); panel.add(animationView); ... } 7
  • 8. JavaFX code : Animation for everyone else var t = Timeline { repeatCount: bind rep autoReverse: bind autoRevCheckBox.selected toggle: bind toggleCheckBox.selected keyFrames: [ KeyFrame { time: 0ms values: [ x => 0, y => 0] }, KeyFrame { time: 2000ms values: [ x => 200 tween interpolate, y => 200 tween interpolate] } ] }; 8
  • 9. How to get started: Software Requirements • Java SE 6 Update 10 SDK • NetBeans IDE 6.1 with JavaFX Plugin OR pre- bundled NetBeans IDE 6.1 with JavaFX • JavaFX Preview SDK (Already bundled with the plugin) • Mozilla Firefox 3, Safari, Internet Explorer or Google Chrome 9
  • 10. NetBeans IDE 6.1 • JavaFX Plugin for NetBeans IDE 6.1 OR pre- bundled NetBeans IDE 6.1 for JavaFX > Support development cycle ● edit, compile, run, test > JavaFX project system > Includes automatic installation of JavaFX Preview SDK 10
  • 11. Components – JavaFX Preview SDK /lib javafxc.jar /docs javafxrt.jar javafxgui.jar /bin javafx-swing.jar javafxc.exe Scenario.jar javafx.exe Decora-D3D.jar /samples Decora-HW.jar SmokeScreenSample jmc.jar StopWatch jogl.jar jaxb*.jar 11
  • 12. Command Line Development • include <javafx-sdk>/bin in PATH • javafxc to compile • javafx to run • Relevant library files in <javafx-sdk>/lib are automatically included in classpath as necessary. Rest can be included with the -classpath option > With packages ● javafxc -d . simple/Main.fx ● javafx simple.Main > Without packages ● javafxc Main.fx ● javafx Main 12
  • 13. Agenda • JavaFX Platform Overview • JavaFX Script Language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment Basics • Summary and References 13
  • 14. Binding in JavaFX Script > Cause and Effect—Responding to change > The JavaFX Script bind operator—Allows dynamic content to be expressed declaratively > Dependency-based evaluation of any expression > Automated by the system—Rather than manually wired by the programmer > You just declare dependencies and the JavaFX runtime takes care of performing updates when things change > Eliminates listener patterns 14
  • 15. Example: Binding in JavaFX Script import javafx.application.*; import javafx.ext.swing.*; Frame { var a: String = quot;namequot;; title: quot;Hello Worldquot; width: 400 stage: Stage { content: ComponentView { component: BorderPanel { bottom: TextField { text: bind a with inverse} top: Label { text: bind quot;Hello {a}quot; } } } } visible: true } 15
  • 16. More Binding Examples public class User { public attribute userid: String; public attribute password: String; } // Create sequence var users = [ User {userid: quot;ragsquot; password: quot;everestquot; }, User {userid: quot;sridharquot; password: quot;hyderabadquot; }, User {userid: quot;inyoungquot; password: quot;koreaquot; }, ]; // Bind list to sequence of users var list = List{items: bind for (user in users) ListItem {text: bind quot;{user.userid}quot;}}; 16
  • 17. Agenda • JavaFX Platform Overview • JavaFX Script language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment basics • Summary and References 17
  • 18. Animation - javafx.animation.* KeyFrame action TimeLine canSkip autoReverse InterPolator time INDEFINITE timelines keyFrames DISCRETE values repeatCount EASEBOTH running EASEIN toggle EASEOUT LINEAR 18
  • 19. Animation • Timelines handles the animation in JavaFX • Timelines are first-class citizen in the language along with the duration time constants (1s, 10s) • They can have one or more KeyFrames • Methods: start(), stop(), pause(), resume() • Properties: autoReverse, repeatCount, toggle • BigDeal: Timelines are nestable! 19
  • 20. Animation var t = Timeline { repeatCount: bind rep autoReverse: bind autoRevCheckBox.selected toggle: bind toggleCheckBox.selected keyFrames: [ KeyFrame { time: 0ms values: [ x => 0, y => 0] }, KeyFrame { time: 2000ms values: [ x => 200 tween interpolate, y => 200 tween interpolate] } ] }; 20
  • 21. The “=>” literal constructor values: [x => 100 tween Interpolator.LINEAR] is equivalent to values: [KeyValue {target: pX, value: 100, interpolate: Interpolator.LINEAR}] where pX is “pointer of x” (obtained magically :-)) 21
  • 22. Animation Controls var buttons = FlowPanel { content: [ Button { text: quot;Startquot; action: function():Void { t.start(); } }, Button { text: quot;Stopquot; action: function():Void { t.stop(); } }, Button { text: quot;Pausequot; action: function():Void { t.pause(); } } ] }; 22
  • 24. Agenda • JavaFX Platform Overview • JavaFX Script language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment basics • Summary and References 24
  • 25. Design Goals • Media Playback is of primary importance • Simple API: only a few lines of coded needed • Cross platform A/V format required • Native support also desirable > “Mash ups” > Viewing local media • Zero Configuration plug in support > Drop in format support • Going beyond rectangular video > Support lightweight rendering > Integration with Scenegraph, FXScript, and 3D APIs 25
  • 26. Architectural Overview, JMC • Java Media Components > JMediaPlayer ● A JComponent that provides media playback > JMediaPane ● A JComponent that provided media playback without UI controls > MediaProvider ● Low level media player > Media Class ● For getting information about the media – Tracks – Metadata > Events and Exceptions 26
  • 27. Code Sample: Java Player class MediaDemo extends JFrame { MediaDemo() { JmediaPlayer mediaPlayer; try { mediaPlayer = new JMediaPlayer( new URI(quot;movie.movquot;)); } catch (Exception e) { System.out.println(quot;Error opening mediaquot; + e); System.exit(0); } add(mediaPlayer); mediaPlayer.play(); setVisible(true); } ... 27
  • 28. Media - javafx.scene.media.* MediaPlayer media Media autoPlay source MediaView volume resolutionX fullScreen REPEAT_FOREVER resoultionY mediaPlayer clip rotate transform effect 28
  • 29. Media in JavaFX • Media classes are part of javafx.scene.media package • Media, MediaPlayer and MediaView > MediaView is a Node ● has a MediaPlayer ● MediaPlayer has a Media object. > MediaView may be rotated, translated, sheared, and have filter effects applied to it. > Multiple views may be bound to single player. • MediaTimers allow functions to be invoked at key points in Media. • Other media events may be triggered 29
  • 30. Code Sample: JavaFX™ MediaPlayer var media = Media{source:”movie.mov”}; var player = MediaPlayer{media: media, autoPlay:true}; var mediaView = MediaView{mediaPlayer: player}; // To enable audio only, don't create MediaView MediaView{mediaPlayer:player, onMouseClicked: function(e) { if (player.paused) { player.play(); } else { player.pause(); } } // Add a clip and rotate clip: c; rotate: 90; } 30
  • 32. Agenda • JavaFX Platform Overview • JavaFX Script language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment basics • Tools, Summary and References 32
  • 33. Code Sample: JavaFX™ from Java // evaluate the FX script Object fxobject = scrEng.eval(script.toString()); // you could use the FXAdapter method // or use pure reflection Method method= fxobject.getClass().getMethod(quot;getJComponentquot;); JComponent component = (Jcomponent) method.invoke(fxobject); frame.add(component); 33
  • 34. Agenda • JavaFX Platform Overview • JavaFX Script language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment basics • Tools, Summary and References 34
  • 35. Consumer JRE Project Hamburg Java SE 6, Update X Java SE 6, Update N Java SE 6, Update 10 35
  • 36. Features • Java Quick Starter > Faster cold starts on most systems • Java Kernel > Shorter download + install + launch times • Deployment Toolkit > Simplifies using Java technology in a web browser 36
  • 37. Quickstarter • “Coldstart” vs. “Warmstart” • Root problem: > Large files + Disk access speed • Solution: QuickStarter > Pre-warm the disk cache • Note: QuickStarter != running VM > Smaller footprint, more targeted disk pages 37
  • 38. Install Time • Java's not small > J2SE 5.0: 7.1 MB > Java SE 6: 10+ MB > rt.jar: 40+ MB on disk • Lots of bits being moved around > Download, Unzip, Unpack200, Copying • Solution: Java Kernel > Download only core dependencies first > Launch application > Download and install in the background 38
  • 39. JRE sizes 39
  • 40. Look Mom! We Shrunk the JRE 40
  • 41. Architectural Overview Java Applet 1 Java Applet 2 HTML-Webpage Java Applet 3 41
  • 42. Architectural Overview Fat Client JVM 1 OS Process 2 Thin Server JVM OS Process 1 Fat Client JVM 2 OS Process 3 42
  • 43. Applets Reloaded • Ground-up rewrite of the Java Plug-In > Mostly in Java • Advanced new architecture > Out-of-process execution • Major benefits > Improved reliability > Support for larger Java heap sizes for applets > Better support for signed applets on Windows Vista > Support for per-applet JVM command-line arguments > Support for multiple simultaneous JRE versions 43
  • 44. Agenda • JavaFX Platform Overview • JavaFX Script Language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment basics • Tools, Summary and References 44
  • 45. Ajax and Java compared (for RIA) Ajax Java • Javascript-based • Java-based • No plugins • Plugins required • Simple effects, transition • Complex effects, and windows transition, windows • Does not work in • Can work in disconnected mode disconnected mode • Mobile phones? • Plans for mobile phones • Designer/Developer • Designer/Developer delineation is blurred delineation can be clear 45
  • 46. JavaFX Preview SDK • JavaFX Preview SDK since 31st July 2008 > http://openjfx.java.sun.com > http://www.javafx.com > available for Windows and MacOS • NetBeans 6.1 IDE and JavaFX Plugin > Available now and since 31st July 2008 • Desktop SDK 1.0 later this year • Project Nile 46
  • 47. Project Nile (Designer + Developer) • Photoshop and Illustrator plugins • FXD File Format • FXD Viewer • SVG Converter • Designer / Developer Collaboration 47
  • 48. JavaFX Summary • JavaFX is a Platform for creating rich internet applications (RIA) with immersive media and content, across all the screens of your life • JavaFX has familiarity with Java developers aimed at designers • Easier to write UI and Graphics programs • Timelines make animations very easy • Binding and other features make it easier • Possible to use JavaFX Script in Java • Java SE 6 update 10 is the deployment platform 48
  • 49. JavaFX References • http://javafx.com/ • https://openjfx.dev.java.net/ • http://openjfx-compiler.dev.java.net • http://scenegraph.dev.java.net • http://java.sun.com/javafx/ • http://java.sun.com/javafx/tutorials /project_nile_integrating_graphics/ • http://openjfx.java.sun.com/current-build/doc/index.html • http://www.netbeans.org 49
  • 50. Thank You!! Raghavan N. Srinivas Incorporating Media and animation into JavaFX and Java rags@sun.com 50