@jood/appearer
Version:
javascript intersection observer
26 lines • 2.7 kB
JavaScript
import { BaseActor } from './base-actor';
import { AppearEvent } from '../common/types';
/**
* Stage 에 등록될 Actor.
* 스테이지 진입을 한번만 감지한 후 본인 스스로 관찰 해제하는 감지형.
* (사용 예: 화면 진입시 한번만 애니메이션 한다, 이미지 로드를 한다)
* @class OnceActor
* @extends {BaseActor}
*/
export class OnceActor extends BaseActor {
/**
* 스테이지 진입. 진입시 자동 관찰 해제.
* @override
* @param [entry]
*/
appear(entry) {
if (this.isAppear === true)
return;
this.isAppear = true;
this.dispatch(AppearEvent.APPEAR, entry);
if (this.stage) {
this.stage.unobserve(this);
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25jZS1hY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9qb29kLWFwcGVhcmVyL2pvb2QtYXBwZWFyZXIvcHJvamVjdHMvcGFja2FnZXMvc3JjLyIsInNvdXJjZXMiOlsiYWN0b3Ivb25jZS1hY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sU0FBVSxTQUFRLFNBQVM7SUFDdEM7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFpQztRQUN0QyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtZQUFFLE9BQU87UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUFjdG9yIH0gZnJvbSAnLi9iYXNlLWFjdG9yJztcbmltcG9ydCB7IEFwcGVhckV2ZW50LCBJT25jZUFjdG9yIH0gZnJvbSAnLi4vY29tbW9uL3R5cGVzJztcblxuLyoqXG4gKiBTdGFnZSDsl5Ag65Ox66Gd65CgIEFjdG9yLlxuICog7Iqk7YWM7J207KeAIOynhOyeheydhCDtlZzrsojrp4wg6rCQ7KeA7ZWcIO2bhCDrs7jsnbgg7Iqk7Iqk66GcIOq0gOywsCDtlbTsoJztlZjripQg6rCQ7KeA7ZiVLlxuICogKOyCrOyaqSDsmIg6IO2ZlOuptCDsp4TsnoXsi5wg7ZWc67KI66eMIOyVoOuLiOuplOydtOyFmCDtlZzri6QsIOydtOuvuOyngCDroZzrk5zrpbwg7ZWc64ukKVxuICogQGNsYXNzIE9uY2VBY3RvclxuICogQGV4dGVuZHMge0Jhc2VBY3Rvcn1cbiAqL1xuZXhwb3J0IGNsYXNzIE9uY2VBY3RvciBleHRlbmRzIEJhc2VBY3RvciBpbXBsZW1lbnRzIElPbmNlQWN0b3Ige1xuICAvKipcbiAgICog7Iqk7YWM7J207KeAIOynhOyehS4g7KeE7J6F7IucIOyekOuPmSDqtIDssLAg7ZW07KCcLlxuICAgKiBAb3ZlcnJpZGVcbiAgICogQHBhcmFtIFtlbnRyeV1cbiAgICovXG4gIGFwcGVhcihlbnRyeT86IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0FwcGVhciA9PT0gdHJ1ZSkgcmV0dXJuO1xuICAgIHRoaXMuaXNBcHBlYXIgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGF0Y2goQXBwZWFyRXZlbnQuQVBQRUFSLCBlbnRyeSk7XG4gICAgaWYgKHRoaXMuc3RhZ2UpIHtcbiAgICAgIHRoaXMuc3RhZ2UudW5vYnNlcnZlKHRoaXMpO1xuICAgIH1cbiAgfVxufVxuIl19