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 回调之后被销毁,所以请不要持有它的引用并在结束回调之后依赖它的内容执行任何逻辑,有这种需求的话你可以提前复制它的内容。
class

LoadingItems

extends

CallbacksInvoker

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: null = null

Private _pipeline

_pipeline: any

active

active: boolean

是否启用。

property

active

type

{Boolean}

completed

completed: object

存储已经完成的加载项。

property

completed

type

{Object}

Type declaration

completedCount

completedCount: number = 0

所有完成加载项的总数。

property

completedCount

type

{Number}

map

map: any = createMap(true)

存储所有加载项的对象。

property

map

type

{Object}

onComplete

onComplete: Function | undefined

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

method

onComplete

param

All items.

param

All items.

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

onProgress

onProgress: Function | undefined

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

method

onProgress

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
 loadingItems.onProgress (completedCount, totalCount, item) {
     let progress = (100 * completedCount / totalCount).toFixed(2);
     cc.log(progress + '%');
 }

totalCount

totalCount: number = 0

所有加载项的总数。

property

totalCount

type

{Number}

Static ItemState

ItemState: any = new cc.Enum(ItemState)
property

{Number} ERROR

Methods

childOnProgress

  • childOnProgress(item: any): void

addListener

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

    method

    addListener

    Parameters

    • key: any
    • callback: any

      can be null

    • target: any

      can be null

    Returns void

    whether the key is new

allComplete

  • allComplete(): void

append

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

    method

    append

    Parameters

    • urlList: any

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

    • Optional owner: any

    Returns IItem[]

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

destroy

  • destroy(): void
  • 销毁一个 LoadingItems 队列,这个队列对象会被内部缓冲池回收,所以销毁后的所有内部信息都是不可依赖的。

    method

    destroy

    Returns void

emit

  • emit(key: string, ...args: any[]): void

exists

  • exists(id: any): boolean

getContent

  • getContent(id: any): null

getError

  • getError(id: any): null

hasEventListener

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

    Parameters

    • key: string

      一个监听事件类型的字符串。

    • Optional callback: Function

      事件分派时将被调用的回调函数。

    • Default value target: Object | null = null

      调用回调的目标。

    Returns boolean

    • 指定事件是否已注册回调。

hasListener

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

    method

    hasListener

    Parameters

    • key: any
    • Optional callback: any
    • Optional target: any

    Returns boolean

isCompleted

  • isCompleted(): boolean

isItemCompleted

  • isItemCompleted(id: any): boolean

itemComplete

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

    method

    itemComplete

    Parameters

    • id: any

      The item url

    Returns void

off

  • off(key: string, callback?: Function, target?: Object): void
  • 删除之前与同类型,回调,目标注册的回调。

    Parameters

    • key: string

      一个监听事件类型的字符串。

    • Optional callback: Function

      移除指定注册回调。如果没有给,则删除全部同事件类型的监听。

    • Optional target: Object

      调用回调的目标。

    Returns void

on

  • on(key: string, callback: Function, target?: Object, once?: undefined | false | true): void
  • 事件添加管理

    Parameters

    • key: string

      一个监听事件类型的字符串。

    • callback: Function

      事件分派时将被调用的回调函数。

    • Optional target: Object
    • Optional once: undefined | false | true

      是否只调用一次。

    Returns void

removeAll

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

    Parameters

    • Optional keyOrTarget: string | Object

      要删除的事件键或要删除的目标。

    Returns void

removeAllListeners

  • removeAllListeners(key: any): void
  • 删除指定目标的所有完成事件监听器。

    method

    removeAllListeners

    Parameters

    • key: any

      The event key to be removed or the target to be removed

    Returns void

removeItem

  • removeItem(url: any): void

removeListener

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

    method

    remove

    Parameters

    • key: any
    • Optional callback: any
    • Optional target: any

    Returns void

    removed

Static create

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

    method

    create

    static
    example
     cc.LoadingItems.create(cc.loader, ['a.png', 'b.plist'], function (completedCount, totalCount, item) {
         let progress = (100 * completedCount / totalCount).toFixed(2);
         cc.log(progress + '%');
     }, function (errors, items) {
         if (errors) {
             for (let i = 0; i < errors.length; ++i) {
                 cc.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

  • getQueue(item: any): any

Static initQueueDeps

  • initQueueDeps(queue: any): void

Static itemComplete

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

    method

    itemComplete

    Parameters

    • item: any

      The item which has completed

    Returns void

Static registerQueueDep

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

Generated using TypeDoc