asset preload issues a callback when done