Thanks for the replies. This is what my code looks like, it's 3 different mediators, i don't know why it's not working :|
If anyone can figure it out, i'll be very grateful!
StartupCommand.as:
facade.registerMediator(new ApplicationMediator(app));
facade.registerMediator(new LocalVideoOutputMediator(app.localVideoDisplay));
facade.registerMediator(new OnlineVideoOutputMediator(app.onlineVideoDisplay));
facade.registerMediator(new ChatMediator(app.chat));
mainApp.mxml
<mx:Application layout="absolute" xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:view="com.view.components.*" applicationComplete="facade.startup(this);" width="680" height="440">
<view:LocalVideoOutput id="localVideoDisplay" x="340" />
<view:OnlineVideoOutput id="onlineVideoDisplay" x="0" />
<view:chat id="chat" x="0" y="240" />
OnlineVideoOutputMediator.as:
package com.view
{
import com.ApplicationFacade;
import com.view.components.OnlineVideoOutput;
import org.puremvc.as3.interfaces.IMediator;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.mediator.Mediator;
public class OnlineVideoOutputMediator extends Mediator implements IMediator
{
public static const NAME:String = 'OnlineVideoOutputMediator';
public function OnlineVideoOutputMediator(viewComponent:Object=null)
{
super(mediatorName, viewComponent);
}
override public function listNotificationInterests():Array
{
return [ApplicationFacade.STREAM_IN
];
}
override public function handleNotification(notification:INotification):void
{
switch(notification.getName())
{
case ApplicationFacade.STREAM_IN:
trace("init online webcam..");
this.onlineVideoOutput.initOnlineCam();
break;
}
}
private function get onlineVideoOutput():OnlineVideoOutput
{
return viewComponent as OnlineVideoOutput;
}
}
}
LocalVideoOutputMediator.as:
package com.view
{
import com.ApplicationFacade;
import com.view.components.LocalVideoOutput;
import org.puremvc.as3.interfaces.IMediator;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.mediator.Mediator;
public class LocalVideoOutputMediator extends Mediator implements IMediator
{
public static const NAME:String = 'LocalVideoOutputMediator';
public function LocalVideoOutputMediator(viewComponent:Object=null)
{
super(mediatorName, viewComponent);
}
override public function listNotificationInterests():Array
{
return [ApplicationFacade.STREAM_OUT];
}
override public function handleNotification(notification:INotification):void
{
switch(notification.getName())
{
case ApplicationFacade.STREAM_OUT:
trace("init local webcam..");
this.localVideoOutput.initLocalCam();
break;
}
}
private function get localVideoOutput():LocalVideoOutput
{
return viewComponent as LocalVideoOutput;
}
}
}
ChatMediator.as:
package com.view
{
import com.ApplicationFacade;
import org.puremvc.as3.interfaces.IMediator;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.mediator.Mediator;
public class ChatMediator extends Mediator implements IMediator
{
public static const NAME:String = 'ChatMediator';
public function ChatMediator(viewComponent:Object=null)
{
super(mediatorName, viewComponent);
}
override public function listNotificationInterests():Array
{
return [ApplicationFacade.STREAM_IN];
}
override public function handleNotification(notification:INotification):void
{
switch(notification.getName())
{
case ApplicationFacade.STREAM_IN:
trace("chat stream in");
break;
}
}
}
}