11var debug = require ( '../utils/debug' ) ;
2- var diff = require ( '../utils' ) . diff ;
32var registerComponent = require ( '../core/component' ) . registerComponent ;
43var THREE = require ( '../lib/three' ) ;
54
@@ -24,44 +23,30 @@ module.exports.Component = registerComponent('sound', {
2423
2524 update : function ( oldData ) {
2625 var data = this . data ;
27- var diffData = diff ( oldData || { } , data ) ;
2826 var el = this . el ;
2927 var sound = this . sound ;
30- var src = data . src ;
31- var srcChanged = 'src' in diffData ;
28+ var srcChanged = data . src !== oldData . src ;
3229
3330 // Create new sound if not yet created or changing `src`.
3431 if ( srcChanged ) {
35- if ( ! src ) {
32+ if ( ! data . src ) {
3633 warn ( 'Audio source was not specified with `src`' ) ;
3734 return ;
3835 }
3936 sound = this . setupSound ( ) ;
4037 }
4138
42- if ( srcChanged || 'autoplay' in diffData ) {
43- sound . autoplay = data . autoplay ;
44- }
45-
46- if ( srcChanged || 'loop' in diffData ) {
47- sound . setLoop ( data . loop ) ;
48- }
49-
50- if ( srcChanged || 'volume' in diffData ) {
51- sound . setVolume ( data . volume ) ;
52- }
39+ sound . autoplay = data . autoplay ;
40+ sound . setLoop ( data . loop ) ;
41+ sound . setVolume ( data . volume ) ;
5342
54- if ( 'on' in diffData ) {
55- if ( oldData && oldData . on ) {
56- el . removeEventListener ( oldData . on ) ;
57- }
43+ if ( data . on !== oldData . on ) {
44+ if ( oldData . on ) { el . removeEventListener ( oldData . on ) ; }
5845 el . addEventListener ( data . on , this . play . bind ( this ) ) ;
5946 }
6047
61- // All sound values set. Load in `src.
62- if ( srcChanged ) {
63- sound . load ( src ) ;
64- }
48+ // All sound values set. Load in `src`.
49+ if ( srcChanged ) { sound . load ( data . src ) ; }
6550 } ,
6651
6752 remove : function ( ) {
0 commit comments