mce
    Preparing search index...

    Interface Commands

    interface Commands {
        activateTool: (tool: string | undefined) => void;
        addAnimationKeyframe: (
            offset: number,
            props: Record<string, any>,
            node?: Element2D,
        ) => void;
        addSubNode: () => void;
        addTextElement: (options?: addTextElementOptions) => Element2D;
        align: (direction: AlignDirection) => void;
        alignBottom: () => void;
        alignHorizontalCenter: () => void;
        alignLeft: () => void;
        alignRight: () => void;
        alignTop: () => void;
        alignVerticalCenter: () => void;
        applyAnimationPreset: (id: string, node?: Element2D) => void;
        applyFormatPaint: (targets?: Element2D[]) => void;
        bindVariable: (
            styleKey: string,
            variableId: string,
            node?: Element2D,
        ) => void;
        bringForward: (target?: Node) => void;
        bringToFront: (target?: Node | Node[]) => void;
        cancel: () => void;
        clearDoc: () => void;
        clearRulerLines: () => void;
        copy: (source?: CopySource) => Promise<void>;
        copyAs: (type: keyof Exporters, options?: CopyAsOptions) => Promise<void>;
        createComponent: (node?: Element2D) => string | undefined;
        createInstance: (
            componentId: string,
            options?: CreateInstanceOptions,
        ) => string | undefined;
        createVariable: (
            collectionId: string,
            variable: { name: string; type: VariableType; value: VariableValue },
        ) => string;
        createVariableCollection: (name: string, modeName?: string) => string;
        createVariableMode: (collectionId: string, name: string) => string;
        cut: () => Promise<void>;
        delete: () => void;
        detachInstance: (node?: Element2D) => void;
        disableFlexLayout: () => void;
        distributeHorizontalSpacing: () => void;
        distributeSpacing: (direction: DistributeSpacingDirection) => void;
        distributeVerticalSpacing: () => void;
        duplicate: () => void;
        eachTextSelection: (
            textSelection: IndexCharacter[],
            cb: (arg: Record<string, any>) => boolean,
        ) => void;
        editElement: () => void;
        enableFlexLayout: (direction?: FlexDirection) => void;
        exitFormatPaint: () => void;
        exportLottie: (options?: ExportLottieOptions) => object;
        exportSlice: (
            options: ExportOptions,
        ) => Promise<HTMLCanvasElement | undefined>;
        flip: (direction: FlipDirection) => void;
        flipHorizontal: () => void;
        flipVertical: () => void;
        formatPaint: () => void;
        frameSelection: () => void;
        getComponents: () => ComponentDef[];
        getDoc: () => JsonData;
        getEasings: () => Record<string, string>;
        getElementInteractions: (node?: Element2D) => Interaction[];
        getElementKeyframes: (node?: Element2D) => Keyframe[];
        getFlexStyle: (key: FlexStyleKey) => any;
        getState: () => State;
        getTextFill: () => NormalizedFill | undefined;
        getTextStyle: (key: string) => any;
        getTransform: () => TransformValue;
        getUiConfig: <T extends keyof UIConfig>(name: T) => UIConfig[T];
        getVariablesState: () => VariablesState;
        groupSelection: () => void;
        hidePanel: (name: string) => void;
        hideUi: (name: keyof UIConfig) => void;
        importFile: (options?: ImportOptions) => Promise<Element2D[]>;
        insertImage: (
            url: string,
            options?: InsertImageOptions,
        ) => Promise<Element2D>;
        isFlexLayout: () => boolean;
        isPanelVisible: (name: string) => boolean;
        isUiVisible: (name: keyof UIConfig) => boolean;
        layerScrollIntoView: () => boolean;
        loadComponentPresets: (defs: ComponentDef[]) => void;
        loadDoc: (source: any) => Promise<Doc>;
        marqueeSelect: (marquee?: Aabb2D) => void;
        move: (direction: MoveDirection, distance?: number) => void;
        moveBottom: (distance?: number) => void;
        moveLeft: (distance?: number) => void;
        moveRight: (distance?: number) => void;
        moveTop: (distance?: number) => void;
        nestIntoFrame: (element: Element2D, options?: NestIntoFrameOptions) => void;
        newDoc: () => void;
        openContextMenu: (event?: MouseEvent) => boolean;
        openDoc: () => Promise<void>;
        paste: (source?: PasteSource) => Promise<void>;
        pause: () => void;
        pauseElementAnimation: (node?: Element2D) => void;
        play: () => void;
        playElementAnimation: (node?: Element2D, restart?: boolean) => void;
        pointerDown: (e: PointerInputEvent, options?: PointerDownOptions) => void;
        redo: () => void;
        registerEasing: (name: string, value: string) => void;
        removeAnimationKeyframe: (offset: number, node?: Element2D) => void;
        removeComponent: (componentId: string) => void;
        resolveVariables: () => void;
        rotate: (deg: number) => void;
        rotate90: () => void;
        runInteraction: (interaction: Interaction, source: Node) => void;
        save: (reason?: SaveReason) => void;
        saveAs: (type: keyof Exporters, options?: SaveAsOptions) => Promise<void>;
        scrollTo: (
            target: ScrollTarget,
            options?: ScrollToOptions,
        ) => Promise<void>;
        scrollToSelection: (options?: ScrollToOptions) => void;
        seekEnd: () => void;
        seekStart: () => void;
        select: (target: SelectTarget) => void;
        selectAll: () => void;
        selectChildren: () => void;
        selectInverse: () => void;
        selectNextSibling: () => void;
        selectNone: () => void;
        selectParent: () => void;
        selectPreviousSibling: () => void;
        sendBackward: (target?: Node) => void;
        sendToBack: (target?: Node | Node[]) => void;
        setActiveVariableMode: (collectionId: string, modeId: string) => void;
        setAnimationKeyframeEasing: (
            offset: number,
            easing: string,
            node?: Element2D,
        ) => void;
        setAnimationTiming: (timing: AnimationTiming, node?: Element2D) => void;
        setComponent: (componentId: string, node?: Element2D) => void;
        setDoc: (doc: DocumentSource) => Doc;
        setElementInteractions: (
            interactions: Interaction[],
            node?: Element2D,
        ) => void;
        setFlexStyle: (key: FlexStyleKey, value: any) => void;
        setInstanceOverride: (path: string, value: any, node?: Element2D) => void;
        setPanelVisible: (name: string, visible: boolean | "toggle") => void;
        setSmartSelectionCurrentElement: (element?: Element2D) => void;
        setState: (value: State) => void;
        setTextContentByEachFragment: (
            handler: (fragment: NormalizedFragment) => void,
        ) => void;
        setTextFill: (value: NormalizedFill | undefined) => void;
        setTextStyle: (key: string, value: any) => void;
        setTransform: (
            type: TransformType,
            value: Partial<TransformValue>,
            options?: TransformOptions,
        ) => void;
        setUiVisible: (name: keyof UIConfig, visible: boolean | "toggle") => void;
        setVariableValue: (
            variableId: string,
            modeId: string,
            value: VariableValue,
        ) => void;
        showPanel: (name: string) => void;
        showUi: (name: keyof UIConfig) => void;
        startTransform: (event?: MouseEvent) => boolean;
        startTyping: (event?: MouseEvent) => Promise<boolean>;
        stepBackward: () => void;
        stepForward: () => void;
        stopElementAnimation: (node?: Element2D) => void;
        syncInstancesOf: (componentId: string) => void;
        testPerformance: (count?: number) => void;
        textFontSizeToFit: (element: Element2D, scale?: number) => void;
        textToFit: (element: Element2D, typography?: TypographyStrategy) => void;
        tidyUp: () => void;
        toggleElementAnimation: (node?: Element2D) => void;
        toggleFlexLayout: () => void;
        togglePanel: (name: string) => void;
        togglePlay: () => void;
        togglePreview: () => void;
        toggleSelectionLock: (target?: "lock" | "unlock") => void;
        toggleSelectionVisible: (target?: "show" | "hide") => void;
        toggleUi: (name: keyof UIConfig) => void;
        unbindVariable: (styleKey: string, node?: Element2D) => void;
        undo: () => void;
        ungroupSelection: () => void;
        zoomIn: () => void;
        zoomOut: () => void;
        zoomTo: (target: ZoomToTarget, options?: ZoomToOptions) => Promise<void>;
        zoomTo100: () => void;
        zoomToFit: () => void;
        zoomToNextFrame: (options?: ZoomToOptions) => void;
        zoomToPreviousFrame: (options?: ZoomToOptions) => void;
        zoomToSelection: (options?: ZoomToOptions) => void;
        zOrder: (type: ZOrderType, target?: Node | Node[]) => void;
    }
    Index

    Properties

    activateTool addAnimationKeyframe addSubNode addTextElement align alignBottom alignHorizontalCenter alignLeft alignRight alignTop alignVerticalCenter applyAnimationPreset applyFormatPaint bindVariable bringForward bringToFront cancel clearDoc clearRulerLines copy copyAs createComponent createInstance createVariable createVariableCollection createVariableMode cut delete detachInstance disableFlexLayout distributeHorizontalSpacing distributeSpacing distributeVerticalSpacing duplicate eachTextSelection editElement enableFlexLayout exitFormatPaint exportLottie exportSlice flip flipHorizontal flipVertical formatPaint frameSelection getComponents getDoc getEasings getElementInteractions getElementKeyframes getFlexStyle getState getTextFill getTextStyle getTransform getUiConfig getVariablesState groupSelection hidePanel hideUi importFile insertImage isFlexLayout isPanelVisible isUiVisible layerScrollIntoView loadComponentPresets loadDoc marqueeSelect move moveBottom moveLeft moveRight moveTop nestIntoFrame newDoc openContextMenu openDoc paste pause pauseElementAnimation play playElementAnimation pointerDown redo registerEasing removeAnimationKeyframe removeComponent resolveVariables rotate rotate90 runInteraction save saveAs scrollTo scrollToSelection seekEnd seekStart select selectAll selectChildren selectInverse selectNextSibling selectNone selectParent selectPreviousSibling sendBackward sendToBack setActiveVariableMode setAnimationKeyframeEasing setAnimationTiming setComponent setDoc setElementInteractions setFlexStyle setInstanceOverride setPanelVisible setSmartSelectionCurrentElement setState setTextContentByEachFragment setTextFill setTextStyle setTransform setUiVisible setVariableValue showPanel showUi startTransform startTyping stepBackward stepForward stopElementAnimation syncInstancesOf testPerformance textFontSizeToFit textToFit tidyUp toggleElementAnimation toggleFlexLayout togglePanel togglePlay togglePreview toggleSelectionLock toggleSelectionVisible toggleUi unbindVariable undo ungroupSelection zoomIn zoomOut zoomTo zoomTo100 zoomToFit zoomToNextFrame zoomToPreviousFrame zoomToSelection zOrder

    Properties

    activateTool: (tool: string | undefined) => void
    addAnimationKeyframe: (
        offset: number,
        props: Record<string, any>,
        node?: Element2D,
    ) => void

    在指定时间点(offset 0..1)插入 / 更新关键帧(合并 props)。

    addSubNode: () => void
    addTextElement: (options?: addTextElementOptions) => Element2D
    align: (direction: AlignDirection) => void
    alignBottom: () => void
    alignHorizontalCenter: () => void
    alignLeft: () => void
    alignRight: () => void
    alignTop: () => void
    alignVerticalCenter: () => void
    applyAnimationPreset: (id: string, node?: Element2D) => void

    应用预设动画(进入 / 退出 / 强调),按元素当前样式生成关键帧;同类预设会被替换。

    applyFormatPaint: (targets?: Element2D[]) => void
    bindVariable: (styleKey: string, variableId: string, node?: Element2D) => void
    bringForward: (target?: Node) => void
    bringToFront: (target?: Node | Node[]) => void
    cancel: () => void
    clearDoc: () => void
    clearRulerLines: () => void
    copy: (source?: CopySource) => Promise<void>
    copyAs: (type: keyof Exporters, options?: CopyAsOptions) => Promise<void>
    createComponent: (node?: Element2D) => string | undefined

    把选中(或指定)元素登记为组件 master,返回组件 id。

    createInstance: (
        componentId: string,
        options?: CreateInstanceOptions,
    ) => string | undefined

    从组件实例化一个 instance,返回实例元素 id。

    createVariable: (
        collectionId: string,
        variable: { name: string; type: VariableType; value: VariableValue },
    ) => string
    createVariableCollection: (name: string, modeName?: string) => string
    createVariableMode: (collectionId: string, name: string) => string
    cut: () => Promise<void>
    delete: () => void
    detachInstance: (node?: Element2D) => void

    解除实例与组件的关联,变回普通元素。

    disableFlexLayout: () => void
    distributeHorizontalSpacing: () => void
    distributeSpacing: (direction: DistributeSpacingDirection) => void
    distributeVerticalSpacing: () => void
    duplicate: () => void
    eachTextSelection: (
        textSelection: IndexCharacter[],
        cb: (arg: Record<string, any>) => boolean,
    ) => void
    editElement: () => void
    enableFlexLayout: (direction?: FlexDirection) => void
    exitFormatPaint: () => void
    exportLottie: (options?: ExportLottieOptions) => object

    把场景里所有带关键帧动画的元素导出为 Lottie JSON(transform / opacity 通道)。

    exportSlice: (options: ExportOptions) => Promise<HTMLCanvasElement | undefined>
    flip: (direction: FlipDirection) => void
    flipHorizontal: () => void
    flipVertical: () => void
    formatPaint: () => void
    frameSelection: () => void
    getComponents: () => ComponentDef[]
    getDoc: () => JsonData
    getEasings: () => Record<string, string>
    getElementInteractions: (node?: Element2D) => Interaction[]
    getElementKeyframes: (node?: Element2D) => Keyframe[]
    getFlexStyle: (key: FlexStyleKey) => any
    getState: () => State
    getTextFill: () => NormalizedFill | undefined
    getTextStyle: (key: string) => any
    getTransform: () => TransformValue
    getUiConfig: <T extends keyof UIConfig>(name: T) => UIConfig[T]
    getVariablesState: () => VariablesState
    groupSelection: () => void
    hidePanel: (name: string) => void
    hideUi: (name: keyof UIConfig) => void
    importFile: (options?: ImportOptions) => Promise<Element2D[]>
    insertImage: (url: string, options?: InsertImageOptions) => Promise<Element2D>
    isFlexLayout: () => boolean
    isPanelVisible: (name: string) => boolean
    isUiVisible: (name: keyof UIConfig) => boolean
    layerScrollIntoView: () => boolean
    loadComponentPresets: (defs: ComponentDef[]) => void

    批量灌入预置组件(按 id 去重 / 覆盖),用于预设组件库 / 模板。

    loadDoc: (source: any) => Promise<Doc>
    marqueeSelect: (marquee?: Aabb2D) => void
    move: (direction: MoveDirection, distance?: number) => void
    moveBottom: (distance?: number) => void
    moveLeft: (distance?: number) => void
    moveRight: (distance?: number) => void
    moveTop: (distance?: number) => void
    nestIntoFrame: (element: Element2D, options?: NestIntoFrameOptions) => void
    newDoc: () => void
    openContextMenu: (event?: MouseEvent) => boolean
    openDoc: () => Promise<void>
    paste: (source?: PasteSource) => Promise<void>
    pause: () => void
    pauseElementAnimation: (node?: Element2D) => void

    暂停某元素的独立播放,冻结在当前帧。

    play: () => void
    playElementAnimation: (node?: Element2D, restart?: boolean) => void

    独立播放某元素自身的动画(脱离全局时间轴,各元素各自计时)。restart 从头播,否则续播。

    pointerDown: (e: PointerInputEvent, options?: PointerDownOptions) => void
    redo: () => void
    registerEasing: (name: string, value: string) => void

    注册可复用的自定义缓动(名字 → cubic-bezier 字符串),存于文档。

    removeAnimationKeyframe: (offset: number, node?: Element2D) => void
    removeComponent: (componentId: string) => void

    从组件库移除一个组件定义(已落地的实例不受影响)。

    resolveVariables: () => void

    把所有节点上的变量绑定按当前 mode 解析并写入样式。

    rotate: (deg: number) => void
    rotate90: () => void
    runInteraction: (interaction: Interaction, source: Node) => void
    save: (reason?: SaveReason) => void
    saveAs: (type: keyof Exporters, options?: SaveAsOptions) => Promise<void>
    scrollTo: (target: ScrollTarget, options?: ScrollToOptions) => Promise<void>
    scrollToSelection: (options?: ScrollToOptions) => void
    seekEnd: () => void
    seekStart: () => void
    select: (target: SelectTarget) => void
    selectAll: () => void
    selectChildren: () => void
    selectInverse: () => void
    selectNextSibling: () => void
    selectNone: () => void
    selectParent: () => void
    selectPreviousSibling: () => void
    sendBackward: (target?: Node) => void
    sendToBack: (target?: Node | Node[]) => void
    setActiveVariableMode: (collectionId: string, modeId: string) => void

    切换某 collection 的当前 mode(如亮 / 暗),并把绑定重新解析到画布。

    setAnimationKeyframeEasing: (
        offset: number,
        easing: string,
        node?: Element2D,
    ) => void
    setAnimationTiming: (timing: AnimationTiming, node?: Element2D) => void
    setComponent: (componentId: string, node?: Element2D) => void

    用某节点的当前内容更新组件 master,并传播到所有实例。

    setDoc: (doc: DocumentSource) => Doc
    setElementInteractions: (interactions: Interaction[], node?: Element2D) => void
    setFlexStyle: (key: FlexStyleKey, value: any) => void
    setInstanceOverride: (path: string, value: any, node?: Element2D) => void

    设置实例的路径级覆盖并重建该实例。

    setPanelVisible: (name: string, visible: boolean | "toggle") => void
    setSmartSelectionCurrentElement: (element?: Element2D) => void
    setState: (value: State) => void
    setTextContentByEachFragment: (
        handler: (fragment: NormalizedFragment) => void,
    ) => void
    setTextFill: (value: NormalizedFill | undefined) => void
    setTextStyle: (key: string, value: any) => void
    setTransform: (
        type: TransformType,
        value: Partial<TransformValue>,
        options?: TransformOptions,
    ) => void
    setUiVisible: (name: keyof UIConfig, visible: boolean | "toggle") => void
    setVariableValue: (
        variableId: string,
        modeId: string,
        value: VariableValue,
    ) => void
    showPanel: (name: string) => void
    showUi: (name: keyof UIConfig) => void
    startTransform: (event?: MouseEvent) => boolean
    startTyping: (event?: MouseEvent) => Promise<boolean>
    stepBackward: () => void
    stepForward: () => void
    stopElementAnimation: (node?: Element2D) => void

    停止独立播放并恢复跟随全局时间轴。

    syncInstancesOf: (componentId: string) => void

    把某组件的所有实例按 master + 各自 override 重建。

    testPerformance: (count?: number) => void
    textFontSizeToFit: (element: Element2D, scale?: number) => void
    textToFit: (element: Element2D, typography?: TypographyStrategy) => void
    tidyUp: () => void
    toggleElementAnimation: (node?: Element2D) => void

    切换某元素独立播放 / 暂停。

    toggleFlexLayout: () => void
    togglePanel: (name: string) => void
    togglePlay: () => void
    togglePreview: () => void
    toggleSelectionLock: (target?: "lock" | "unlock") => void
    toggleSelectionVisible: (target?: "show" | "hide") => void
    toggleUi: (name: keyof UIConfig) => void
    unbindVariable: (styleKey: string, node?: Element2D) => void
    undo: () => void
    ungroupSelection: () => void
    zoomIn: () => void
    zoomOut: () => void
    zoomTo: (target: ZoomToTarget, options?: ZoomToOptions) => Promise<void>
    zoomTo100: () => void
    zoomToFit: () => void
    zoomToNextFrame: (options?: ZoomToOptions) => void
    zoomToPreviousFrame: (options?: ZoomToOptions) => void
    zoomToSelection: (options?: ZoomToOptions) => void
    zOrder: (type: ZOrderType, target?: Node | Node[]) => void