snake demo

This commit is contained in:
pengfei.zhou
2019-07-25 00:14:55 +08:00
parent 8cdff3a8e4
commit cd85a5a676
3 changed files with 58 additions and 7 deletions

View File

@@ -69,7 +69,7 @@ export abstract class View implements Modeling {
set: (target, p, v, receiver) => {
const oldV = Reflect.get(target, p, receiver)
const ret = Reflect.set(target, p, v, receiver)
if (Reflect.getMetadata(p, target)) {
if (Reflect.getMetadata(p, target) && oldV !== v) {
receiver.onPropertyChanged(p.toString(), oldV, v)
}
return ret
@@ -209,7 +209,7 @@ export interface LinearConfig extends Config {
export abstract class Group extends View {
@Property
children: View[] = new Proxy([], {
readonly children: View[] = new Proxy([], {
set: (target, index, value) => {
if (index === 'length') {
this.getDirtyChildrenModel().length = value as number
@@ -231,6 +231,7 @@ export abstract class Group extends View {
addChild(view: View) {
this.children.push(view)
}
clean() {
this.children.forEach(e => { e.clean() })
super.clean()