Options
All
  • Public
  • Public/Protected
  • All
Menu

Class LoadingItems

LoadingItems 是一个加载对象队列,可以用来输送加载对象到加载管线中。
请不要直接使用 new 构造这个类的对象,你可以使用 create 来创建一个新的加载队列,这样可以允许我们的内部对象池回收并重利用加载队列。 它有一个 map 属性用来存放加载项,在 map 对象中已 url 为 key 值。
每个对象都会包含下列属性:

  • id:该对象的标识,通常与 url 相同。
  • url:路径
  • type: 类型,它这是默认的 URL 的扩展名,可以手动指定赋值。
  • error:pipeline 中发生的错误将被保存在这个属性中。
  • content: pipeline 中处理的临时结果,最终的结果也将被存储在这个属性中。
  • complete:该标志表明该对象是否通过 pipeline 完成。
  • states:该对象存储每个管道中对象经历的状态,状态可以是 Pipeline.ItemState.WORKING | Pipeline.ItemState.ERROR | Pipeline.ItemState.COMPLETE

    对象可容纳其他自定义属性。
    每个 LoadingItems 对象都会在 onComplete 回调之后被销毁,所以请不要持有它的引用并在结束回调之后依赖它的内容执行任何逻辑,有这种需求的话你可以提前复制它的内容。

Hierarchy

  • CallbacksInvoker
    • LoadingItems

Index

Constructors

constructor

  • newLoadingItems(pipeline: any, urlList: any, onProgress: any, onComplete: any): LoadingItems

Properties

Private _appending

_appending: boolean = false

_callbackTable

_callbackTable: ICallbackTable = createMap(true)

Private _errorUrls

_errorUrls: Array<string> = []

Private _id

_id: number

_ownerQueue

_ownerQueue: LoadingItems | null = null

Private _pipeline

_pipeline: any

active

active: boolean

是否启用。

completed

completed: {}

存储已经完成的加载项。

Type declaration

completedCount

completedCount: number = 0

所有完成加载项的总数。

map

map: Map<string, IItem> = createMap(true)

存储所有加载项的对象。

onComplete

onComplete: ((errors: string[] | null, items: LoadingItems) => void) | undefined

该函数将在加载队列全部完成时被调用。你可以在构造时传递这个回调函数或者是在构造之后直接设置。

param

All items.

param

All items.

example
import { log } from 'cc';
loadingItems.onComplete (errors, items) {
    if (error) {
        log('Completed with ' + errors.length + ' errors');
    } else {
        log('Completed ' + items.totalCount + ' items');
    }
}

onProgress

onProgress: ((completedCount: number, totalCount: number, IItem: any) => void) | undefined

这个回调函数将在 item 加载结束后被调用。你可以在构造时传递这个回调函数或者是在构造之后直接设置。

param

The latest item which flow out the pipeline.

param

The latest item which flow out the pipeline.

param

The latest item which flow out the pipeline.

example
import { log } from 'cc';
loadingItems.onProgress (completedCount, totalCount, item) {
    let progress = (100 * completedCount / totalCount).toFixed(2);
    log(progress + '%');
}

totalCount

totalCount: number = 0

所有加载项的总数。

Static ItemState

ItemState: any = new legacyCC.Enum(ItemState)

LoadingItems 队列中的加载项状态,状态的值可能是 {{ItemState.WORKING}} | {{ItemState.COMPLETE}} | {{ItemState.ERROR}}

Methods

childOnProgress

  • childOnProgress(item: any): void

addListener

  • addListener(key: string, callback: Function, target?: any): Function
  • 监听加载项(通过 key 指定)的完成事件。

    Parameters

    • key: string

      The item key

    • callback: Function

      Callback function when item loaded

    • Optional target: any

      Callback callee

    Returns Function

allComplete

  • allComplete(): void

append

  • append(urlList: object[], owner?: any): IItem[]
  • 向一个 LoadingItems 队列添加加载项。

    Parameters

    • urlList: object[]

      要追加的url列表,url可以是对象或字符串

    • Optional owner: any

    Returns IItem[]

    在已接受的url列表中,可以拒绝某些无效项

clear

  • clear(): void

destroy

  • destroy(): void

emit

  • emit(key: string, arg0?: any, arg1?: any, arg2?: any, arg3?: any, arg4?: any): void
  • 派发一个指定事件,并传递需要的参数

    Parameters

    • key: string

      event type

    • Optional arg0: any

      The first argument to be passed to the callback

    • Optional arg1: any

      The second argument to be passed to the callback

    • Optional arg2: any

      The third argument to be passed to the callback

    • Optional arg3: any

      The fourth argument to be passed to the callback

    • Optional arg4: any

      The fifth argument to be passed to the callback

    Returns void

exists

  • exists(id: string): boolean

getContent

  • getContent(id: string): any

getError

  • getError(id: string): any

hasEventListener

  • hasEventListener(key: string, callback?: Function, target?: Object): boolean
  • 检查指定事件是否已注册回调。

    Parameters

    • key: string

      Event type

    • Optional callback: Function

      Callback function when event triggered

    • Optional target: Object

      Callback callee

    Returns boolean

hasListener

  • hasListener(key: string, callback?: Function, target?: any): boolean
  • 检查指定的加载项是否有完成事件监听器。 如果同时还指定了一个回调方法,并且回调有注册,它只会返回 true。

    Parameters

    • key: string

      The item key

    • Optional callback: Function

      Callback function when item loaded

    • Optional target: any

      Callback callee

    Returns boolean

    Whether the corresponding listener for the item is registered

isCompleted

  • isCompleted(): boolean

isItemCompleted

  • isItemCompleted(id: string): boolean

itemComplete

  • itemComplete(id: string): void
  • 通知 LoadingItems 队列一个 item 对象已完成,请不要调用这个函数,除非你知道自己在做什么。

    Parameters

    • id: string

      The item url

    Returns void

off

  • off(key: string, callback?: Function, target?: Object): void
  • 删除以指定事件,回调函数,目标注册的回调。

    Parameters

    • key: string

      Event type

    • Optional callback: Function

      The callback function of the event listener, if absent all event listeners for the given type will be removed

    • Optional target: Object

      The callback callee of the event listener

    Returns void

on

  • on(key: string, callback: Function, target?: Object, once?: undefined | false | true): Function
  • 向一个事件名注册一个新的事件监听器,包含回调函数和调用者

    Parameters

    • key: string

      Event type

    • callback: Function

      Callback function when event triggered

    • Optional target: Object

      Callback callee

    • Optional once: undefined | false | true

      Whether invoke the callback only once (and remove it)

    Returns Function

removeAll

  • removeAll(keyOrTarget: string | Object): void
  • 移除在特定事件类型中注册的所有回调或在某个目标中注册的所有回调。

    Parameters

    • keyOrTarget: string | Object

      The event type or target with which the listeners will be removed

    Returns void

removeAllListeners

  • removeAllListeners(key: any): void

removeItem

  • removeItem(url: string): void

removeListener

  • removeListener(key: string, callback?: Function, target?: any): void
  • 移除指定加载项已经注册的完成事件监听器。 只会删除 key, callback, target 均匹配的监听器。

    Parameters

    • key: string

      The item key

    • Optional callback: Function

      Callback function when item loaded

    • Optional target: any

      Callback callee

    Returns void

Static create

  • create(pipeline: any, urlList: any, onProgress?: any, onComplete?: any): LoadingItems
  • LoadingItems 的构造函数,这种构造方式会重用内部对象缓冲池中的 LoadingItems 队列,以尽量避免对象创建。 你可以传递 onProgress 和 onComplete 回调函数来获知加载进度信息。

    example
    import { log, LoadingItems } from 'cc';
    LoadingItems.create(loader, ['a.png', 'b.plist'], function (completedCount, totalCount, item) {
        let progress = (100 * completedCount / totalCount).toFixed(2);
        log(progress + '%');
    }, function (errors, items) {
        if (errors) {
            for (let i = 0; i < errors.length; ++i) {
                log('Error url: ' + errors[i] + ', error: ' + items.getError(errors[i]));
            }
        }
        else {
            let result_a = items.getContent('a.png');
            // ...
        }
    })

    Parameters

    • pipeline: any

      The pipeline to process the queue.

    • urlList: any

      The items array.

    • Optional onProgress: any
    • Optional onComplete: any

    Returns LoadingItems

    The LoadingItems queue object

Static finishDep

  • finishDep(depId: any): void

Static getQueue

Static initQueueDeps

  • initQueueDeps(queue: any): void

Static itemComplete

  • itemComplete(item: IItem): void

Static registerQueueDep

  • registerQueueDep(owner: any, depId: any): undefined | false

Generated using TypeDoc