Code
var amountX = 100
var amountY = 50
var spacingX = 0.01
var spacingY = 0.02
var radius = 3
var scaling = 2.5
var distanceOfReact = 20
var gridObjectsArray = []
for (var x = 0; x < amountX; x++) {
for (var y = 0; y < amountY; y++) {
var circle = new Path.Rectangle({
size: radius,
radius: radius/4,
fillColor: 'red',
position: [view.center.x * x * spacingX, view.center.y * y * spacingY],
applyMatrix: false,
opacity: 0.2
})
circle.sendToBack()
gridObjectsArray.push(circle)
}
}
function onFrame(event) {
if (event.count % 20 == 0) {
gridObjectsArray.map(function(object, i) {
if (Math.floor(Math.random() * gridObjectsArray.length) + 0 % i == 0) {
var tween = object.tweenTo({
scaling: '3',
opacity: '1'
}, 200)
tween.then(function() {
object.tweenTo({
scaling: '1',
rotation: '0',
opacity: '0.2'
}, 200)
})
}
})
}
}
function onMouseDrag(event) {
this.position += event.delta
gridObjectsArray.map(function(object, i) {
var distance = event.point.getDistance(object.position)
if (distance < distanceOfReact) {
object.onFrame = function(event) {
this.scaling = Math.sin(event.count * 0.02) * scaling
this.opacity = 1
}
}
})
}
project.activeLayer.position = view.center