I'm not sure if you're asking for this level of explanation or not Jason,
but this might help:
I use a BaseClass.as to extend so that I can dispatch events via
GDispatcher:
import com.blitzagency.xray.logger.XrayLog;
import com.gskinner.events.GDispatcher;
/**
* @author John Grden
*/
class com.tomsnyder.util.BaseClass {
// Public Properties:
public var addEventListener:Function;
public var removeEventListener:Function;
public var removeAllEventListeners:Function;
// Private Properties:
private var dispatchEvent:Function;
private var log:XrayLog;
function BaseClass()
{
GDispatcher.initialize(this);
log = new XrayLog();
}
}
So, with this, I just create a new class that extends BaseClass, and bingo,
I have eventDispatching capabilities:
import com.tomsnyder.util.BaseClass;
/**
* @author John Grden
*/
class BaseMain extends BaseClass
{
public static var SOMETHING_COMPLETE:String = "somethingComplete";
function BaseMain()
{
super();
}
}
Now, I can just as easily add my listener from another class that has access
to BaseMain:
BaseMain.addEventListener(BaseMain.SOMETHING_COMPLETE, Delegate.create(this,
somethingCompleteHandler));
private function somethingCompleteHandler(e:Object):Void
{
trace(log.debug("somethingCompleteHandler called", e));
}
For scope, just use mx.utils.Delegate or Steve Websters delegate
Does that help or am I missing your question?
John
On 2/16/07, Merrill, Jason <[EMAIL PROTECTED]> wrote:
OK, I'm pretty good at Actionscript 2.0, but something I never really
understood and now need to.
Core question: How do I make an event in a custom class, and how do I
make a listener in another class listen for the event?
EventBroadcaster in the help docs seems to only show how to use it with
Adobe classes and components. Docs on listener are the same. I know how
to set up listeners for other events, like keypresses and mouse
rollovers. Easy enough. But my problem is this (see comments in code
below):
class com.boa.projects.iqrcgenerator.components.AdminData{
private var userData:Object;
public function wsUserDataByLOB(lobDbId:Number):Void{
var getUserListResult:Object = new Object();
getUserListResult =
generatorWebService.GetUserList(lobDbId);
getUserListResult.onResult = function(oUser){
//this works fine,
//I can capture this event result here,
//but how do I notify another class?
//also what about scope here?
//how to set userData as oUser result?
//can I fire an event in my AdminData
//class from here?
}
}
public function getUserData():Object{
//can't let user get this data
//until Webserive event is done.
return userData;
}
}
Thanks,
Jason Merrill
Bank of America
Learning & Organizational Effectiveness
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
--
[ JPG ]
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com