Como Extender El DynLayer

Hay cuatro formas diferentes de como extender el DynLayer

Métodos de añadir encima "add-on" DynLayer

Es bastante fácil añadir tus propios métodos al DynLayer. Solo crea tu propia función :

function DynLayerNewMethod() {
	// código para este método
}

Entonces para incorporar este método dentro del Dynlayer tienes 2 opciones:

Opción 1: Incluyendo este en el método DynLayerAddon()

El Método DynLayerAddon() (añadir) es diseñado especialmente para ser parte del DynLayer que esta sueltamente puesta y fácil de añadir o remover los métodos y las propiedades. Para añadir tus propios métodos, puedes poner tu código en el método añadirencima() "addon()"

function DynLayerAddon(id,nestref) {
	this.id = id
	this.nestref = nestref
	this.w = (ns4)? this.css.clip.width : this.css.pixelWidth
	this.h = (ns4)? this.css.clip.height : this.css.pixelHeight
	this.doc = (ns4)? this.css.document : document
	this.event = (ns4)? this.css : document.all[id]
	if (ns4) this.event.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP | Event.MOUSEMOVE)
	this.obj = id + "DynLayer"
	eval(this.obj + "=this")
	this.slideInit = DynLayerSlideInit
	this.clipInit = DynLayerClipInit
	this.wipeInit = DynLayerWipeInit
	this.newMethod = DynLayerNewMethod
}

Haciendo esto de esta forma asignará el método nuevo a todos los DynLayers que tengas.

Esta táctica es utilizada por los métodos slide, clip, y wipe .

Opción 2: Asignando el Método Individualmente:

En lugar lo que puedes hacer es solamente de asignar el método DynLayers las cuales son requeridas:

objectName = new DynLayer("objectNameDiv")
objectName.newMethod = DynLayerNewMethod

Esta táctica es utilizada por los métodos glide, setBGColor, escribir, y cambiandoImagen .

DynLayer Add-on Objetos

Si necesitas suplir al DynLayer el cual contiene su misma grupo de propiedades y several métodos, tal vez querrás hacer este su propio objeto y adjuntar este al DynLayer. Lo que yo sugiero que hagas es de pasar la información nueva del objeto la cual está todavía capaz de poner al día el DynLayer. Para hacer esto el objeto requerirá el nombre del DynLayer, como también el nombre del agregar-objeto "Add-object":

objectName = new DynLayer("objectNameDiv")
objectName.myobject = new MyObject("objectName","myobject")

function MyObject(dynlayer,name) {
	this.dynlayer = dynlayer
	this.name = name
	this.value = eval(this.dynlayer+'.x') + 100  // use eval's to capture data from the Dynlayer
	this.method = MyObjectMethod
	this.repeat = MyObjectRepeatMethod  // repeats MyObjectMethod using setTimeout
}
function MyObjectMethod() {
	eval(this.dynlayer+'.moveBy(10,10)')  // use eval's to assemble the name of the DynLayer
}
function MyObjectRepeat() {
	setTimeout(this.dynlayer+'.'+this.name+'.method()',50)  // use eval's to assemble the name of the object's method  
}

Entonces para utilizar el agrega-encima objeto "add-on object" debes de utilizar este formato general:

objectName.myobject.method()
or
objectName.myobject.repeat()
etc.

Esta táctica es utilizada por el Objetos Geométricos , y el Camino Objecto.

Objetos que utilizan el DynLayer Internalmente

Si deseas que un objeto controle múltiple capas, tu mejor apuesta es de asignar propiedades las cuales en realidad son DynLayers.

Opción 1: Manda al objeto los nombres de las capas y deja al objeto definir los DynLayers

myobject = new MyObject('layer1Div,'layer2Div')

function MyObject(lyr1,lyr2) {
	this.lyr1 = new DynLayer(lyr1)
	this.lyr2 = new DynLayer(lyr2)
}

De esta forma, el objeto principal (myObject) podrá controlar estas dos capas con utilizando las propiedades y los métodos en esas DynLayers. Por ejemplo puedes crear un método el cual puede deslizar dos en unísono.

myobject = new MyObject('layer1Div,'layer2Div')

function MyObject(lyr1,lyr2) {
	this.lyr1 = new DynLayer(lyr1)
	this.lyr1.slideInit()
	this.lyr2 = new DynLayer(lyr2)
	this.lyr2.slideInit()
	this.slideBoth = MyObjectSlideBoth
}
function MyObjectSlideBoth() {
	this.lyr1.slideBy(-100,0,5,50)
	this.lyr2.slideBy(100,0,5,50)
}

Esta táctica es utilizada por el Scroll y Seleccione Objetos.

Opción 2: Pre-definir tus DynLayers y manda al objeto los nombres de los DynLayers

mylayer = new DynLayer("mylayerDiv")
myobject = new MyObject(mylayer)

function MyObject(dynlayer) {
	this.dynlayer = dynlayer
	// do something with this.dynlayer
}

Esta táctica es utilizada por el Objeto Arrastrar.

Objetos que Encapsulada al DynLayer

La última forma de utilizar un DynLayer, la más poderosa de los cuatro, es hacer un objeto encapsular el DynLayer, en otras palabras importar toda la funcionalidad del DynLayer dentro de un objeto.

Estes al tanto, que esta no es la misma cosa que la sección de arriba. La sección de arriba hace el Dynlayer una propiedad de un objeto. Encpasulación significa que este objeto actualmente se vuelve un DynLayer que tiene su propio grupo de propiedades y métodos.

Para encapsular el DynLayer, tienes que asignar el DynLayer como un método del objeto, y inmediatamente llamar a ese método:

myobject = new MyObject('myObjectDiv',null)

function MyObject(id,nestref) {
	this.dynlayer = DynLayer
	this.dynlayer(id,nestref)
}

Lo que esto hace es de asignar todas las propiedades y métodos del DynLayer a este objeto. Esto en realidad es el mismo un DynLayer porque trabajar con él de la misma manera....

myobject.hide()
myobject.moveBy(10,10)
etc.

¿Entonces que ventajas tiene esto? Bueno esta es la forma fundamental para extender el DynLayer porque podrás añadir mucho mas funcionalidad a este objeto. Esta técnica es la ideal para hacer un back-end a un juego DHTML, donde necesitas muchos tipos de objetos para hacer diferentes trabajos, al mismo tiempo que también todos estos necesitan de controlar capas como hace el DynLayer .

Para un ejemplo de como utilizar esto, ver la fuente de código de demo-smileyface.html. Es una demostración la cual crea un objeto de una cara Smiley que tiene sus propias propiedades y métodos que son solamente necesitados cuando necesites hacer una cara como esta.

Esta táctica es utilizada por el Bumble Bee Demo.

Extensiones DynLayer :

Casa Próxima Lección: Objetos Geométricos
copyright 1998 Dan Steinman