PDA

Просмотр полной версии : связь 2х классов


ktotam
08.02.2007, 23:14
Здраствуйте! Подскажите в чем ошибка.

//*.fla
var otherClass:OtherClass = new OtherClass(_root,"my_txt", 1, 10, 30, 180, 94);
otherClass.mc_txt="Hello 1"
otherClass.mc_txt="Hello 2"
otherClass.mc_txt="Hello 3"
var anyClass:AnyClass = new AnyClass();

//AnyClass.as
class AnyClass {
public var addEventListener:Function;
public var dispatchEvent:Function;
public var otherClass:OtherClass;
public function AnyClass() {
EventDispatcher.initialize(this);
this.addEventListener("onAnyClassEvent",otherClass);
this.dispatchEvent({type:'onAnyClassEvent',data:'Hello from AnyClass'});
}
}

//OtherClass.as
class OtherClass {
public var addEventListener:Function;
public var anyClass:AnyClass;
private var _mct:TextField
public function OtherClass(timeline:MovieClip,_NAME:String,_depth:Number, _xx:Number, _yy:Number,_wwidth:Number, _hheight:Number){
EventDispatcher.initialize(this);
timeline.createTextField(_NAME,_depth,_xx,_yy,_wwidth,_hheight);
_mct=timeline[_NAME]
}
public function set mc_txt(txt:String):Void{
_mct.text = txt+newline+_mct.text;
_mct.type = "dynamic";
_mct.background = true;
}
public function onAnyClassEvent(event:Object):Void {
_mct.text = event.data+newline+_mct.text;
}
}

etc
08.02.2007, 23:34
Ой, какой знакомый код, отсюда (http://flasher.ru/forum/showthread.php?t=90800&highlight=OtherClass), вероятно.

Встречный вопрос — а догадаться, что у тебя не работает, мы сами должны?

lowka
08.02.2007, 23:38
otherClass был не задан.

import mx.events.EventDispatcher;

class AnyClass {
public var addEventListener:Function;
public var removeEventListener:Function;
private var dispatchEvent:Function;

private var otherClass:OtherClass;

public function AnyClass(otherClass:OtherClass) {
if(!otherClass){
return;
}
EventDispatcher.initialize(this);
this.otherClass = otherClass;
this.addEventListener("onAnyClassEvent",this.otherClass);

this.dispatchEvent({type:'onAnyClassEvent',data:'Hello from AnyClass'});
}
}



var otherClass:OtherClass = new OtherClass(_root,"my_txt", 1, 10, 30, 180, 94);
otherClass.mc_txt="Hello 1"
otherClass.mc_txt="Hello 2"
otherClass.mc_txt="Hello 3"
var anyClass:AnyClass = new AnyClass(otherClass);

Я добавил импортировал EventDispatcher (у вас он вроде в тойже папке что и классы...)

etc
08.02.2007, 23:40
Да, кстати, я в той теме забыл импортнуть, впрочем, Futs и так понял, что нужно. А все потому что окошко для ввода текста маленькое…