私は、javascript と ExtJ の両方にまったく慣れていない独学の学生です。
私がやろうとしているのは、メイン クラスの動物を作成し、2 つのサブクラスに動物からプロパティ/メソッドを継承させることです。それらは猫と犬です...次に、複数のオブジェクト(複数の猫と犬)がクラス猫と犬から継承されるようにしたいと思います。cat1、mycat、cat2、dog1、mydog、topdog などの複数のオブジェクトは、互いに話したり聞いたりできるはずでした。
cat1、mycat などが話すとき、それは単なるアラート (もの) であり、それが起こると、犬は「mydog がそれを聞いた」と警告します。
コミュニティの助けを借りて、すでにJavaScriptでこれを行いました(Javascriptでリスナーを作成する方法)
私もExtJSを使ってこれをやりたいです。これは私がこれまでに持っているものです
Ext.define('animal', {
extend: 'Ext.util.Observable',
constructor: function(config)
{
this.name = config.name;
this.addEvents({'makesound' :true});
this.listeners = config.listeners;
//animal.superclass.constructor.call(this, config);
this.callParent(arguments);
},
makesound: function()
{
alert(this.sound);
this.fireEvent('makesound'); // this is wrong isn't it?
// I was thinking that the make sound
// would trigger the event makesound
}
});
//var cat = Ext.create('animal');
//var dog = new animal;
//cat.makesound();
//dog.makesound();
Ext.define('cat', {
extend: 'animal',
name: name,
sound: 'meow'
});
Ext.define('dog', {
extend: 'animal',
name: name,
sound: 'woof'
});
var myCat = new cat({
name: 'myCat'});
var myDog = new dog({
name:'mydog',
listeners: {
makesound: function() {
alert('mydog heard that');
}
}
});
myCat.makesound();
myDog.fireEvent('makesound'); //
私が本当に欲しいのは、mycat が音を出すと、mydog が自動的にその音 (「ニャー」) を聞き、犬がそれを聞いたことを警告することです。ただし、extJSでは。ヘルプやアドバイスをいただければ幸いです。