Last active
August 29, 2015 14:25
-
-
Save oodavid/202177ae2f0e6baee7ad to your computer and use it in GitHub Desktop.
GC > New Groups Paradigm Bug
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import ui.TextView as TextView; | |
import ui.View as View; | |
import device; | |
import animate; | |
var gx = Math.ceil(device.width/20); | |
exports = Class(GC.Application, function () { | |
this.initUI = function () { | |
// A note | |
new TextView({ | |
superview: this.view, | |
width: device.width, | |
height: (gx*2), | |
color: '#FFFFFF', | |
text: 'Tap to shuffle, view the console' | |
}); | |
// Create some randomly placed views | |
var myviews = []; | |
for(var n=0; n<10; n++){ | |
myviews.push(new View({ | |
superview: this.view, | |
x: Math.random()*(device.width-(gx*2)), | |
y: (gx*2)+Math.random()*(device.height-(gx*4)), | |
width: (gx*2), | |
height: (gx*2), | |
backgroundColor: '#'+('00000'+(Math.random()*(1<<24)|0).toString(16)).slice(-6) | |
})); | |
} | |
// Tap to animate a randomly-sized group of views | |
this.view.on('InputStart', bind(this, function(){ | |
console.log('-- NEW ANIMATION --'); | |
fyshuffle(myviews); | |
var l = Math.floor(Math.random()*myviews.length); | |
for(var n=0; n<l; n++){ | |
animate(myviews[n], 'mygroup') | |
.then({ | |
x: Math.random()*(device.width-(gx*2)), | |
y: (gx*2)+Math.random()*(device.height-(gx*4)) | |
}, 500, animate.easeOutBounce); | |
} | |
var g = animate.getGroup('mygroup'); | |
g.removeAllListeners('Finish'); | |
g.once('Finish', bind(this, function(){ | |
console.log('callback fired!'); | |
})); | |
console.log('Expected group size: '+l); | |
console.log('Reported group size: '+g.anims.length); | |
})); | |
}; | |
this.launchUI = function () {}; | |
}); | |
// Fisher-Yates Shuffle | |
var fyshuffle = function(array) { | |
var m = array.length, t, i; | |
while (m) { | |
i = Math.floor(Math.random() * m--); | |
t = array[m]; | |
array[m] = array[i]; | |
array[i] = t; | |
} | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment