Actionscript 3 SharedObject,单击每个用户按钮

Actionscript 3 SharedObject,单击每个用户按钮,actionscript-3,flash,real-time,shared-objects,mouseclick-event,Actionscript 3,Flash,Real Time,Shared Objects,Mouseclick Event,我有一个imageslider.swf,它有两个按钮。nextBtn用于传递下一个图像,prevBtn用于返回上一个图像。此swf实际上是幻灯片共享应用程序。我想做的是,当演示者按下任何一个按钮时,每个幻灯片放映都会改变(在每个客户端上)。但这将发生在互联网上,而不是本地网络上 import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; import flash.events.Mouse

我有一个imageslider.swf,它有两个按钮。nextBtn用于传递下一个图像,prevBtn用于返回上一个图像。此swf实际上是幻灯片共享应用程序。我想做的是,当演示者按下任何一个按钮时,每个幻灯片放映都会改变(在每个客户端上)。但这将发生在互联网上,而不是本地网络上

import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.filters.GlowFilter;
import flash.filters.DropShadowFilter;
import flash.utils.Timer;
import flash.events.TimerEvent;




//*****************DECLARING ALL VARIABLES*****************************//

//the array has all picture labels
var myArray:Array = ["Barbecued Chicken", "Bread & Rolls", "Burger", "Chicken Chilly" , "Awesome fish"];
var myGlow:GlowFilter = new GlowFilter(0xffffff,1,10,10,255);// saving the glow
var myShadow:DropShadowFilter = new DropShadowFilter(6);// saving the shadow to be applied later
var totalImages=11;
var imageNumber=1;
var myTimer:Timer = new Timer(4000);// 4 second timer
var myLoader:Loader = new Loader();


//************FETCHING THE PICTURES LYING IN THE EXTERNAL FOLDER********************//

var myRequest:URLRequest = new URLRequest("Images/"+imageNumber+".jpg");
myLoader.load(myRequest);
addChildAt(myLoader,1);// will be added under the buttons layer but over the texture

//************CENTERING THE PICS AND APPLYING BORDER AND DROP SHADOW****************//

myLoader.contentLoaderInfo.addEventListener(Event.INIT, getImageInfo);
function getImageInfo(event:Event){
    var imgX=(stage.stageWidth- myLoader.width)/2;
    var imgY=(stage.stageHeight- myLoader.height)/2;
    myLoader.x=imgX;
    myLoader.y = imgY;// lines 37,38,39 & 40 are centering the loader formulae
    myLoader.filters = [myGlow, myShadow];// adding a white color glow / grey shadow
    var myTween:Tween = new Tween(myLoader, "alpha", None.easeNone, 0,1,2,true);//apply fade in

    }
//**************AUTOMATIC PROGRESSION ********************************//

myTimer.addEventListener(TimerEvent.TIMER, autoadvance);
function autoadvance(event:TimerEvent){
    if(imageNumber<totalImages){imageNumber++}
    else (imageNumber=1);
    reload();   
}
myTimer.start();

//**************GOING TO NEXT IMAGE********************************//

rightButton.addEventListener(MouseEvent.CLICK, nextImage);
function nextImage(event:MouseEvent){
    if(imageNumber<totalImages){imageNumber++}
    else (imageNumber=1);
    reload();
        }
    //**************GOING TO PREVIOUS IMAGE********************************//

leftButton.addEventListener(MouseEvent.CLICK, previousImage);
function previousImage(event:MouseEvent){
    if(imageNumber>1){imageNumber--}
    else (imageNumber=totalImages);
    reload();
    }

    //*****************controlling THE THUMBNAILS****************************//

t1.addEventListener(MouseEvent.CLICK, thumbHandler);
t2.addEventListener(MouseEvent.CLICK, thumbHandler);
t3.addEventListener(MouseEvent.CLICK, thumbHandler);
t4.addEventListener(MouseEvent.CLICK, thumbHandler);
t5.addEventListener(MouseEvent.CLICK, thumbHandler);

function thumbHandler(event:MouseEvent){
         if(event.currentTarget==t1){imageNumber=1}
        else    if(event.currentTarget==t2){imageNumber=2}
        else  if(event.currentTarget==t3){imageNumber=3}
        else  if(event.currentTarget==t4){imageNumber=4}
        else{imageNumber=5}
        reload();
    }

    //**************REPLACING OLD IMAGE WITH NEW ********************************//

function reload(){
    removeChild(myLoader);
    myRequest= new URLRequest("Images/"+imageNumber+".jpg");
    myLoader.load(myRequest);
    addChildAt(myLoader,1);
    //changing the label and tweening with as 3
    myLabel.pictureLabel.text = myArray[imageNumber-1];
    var tweenLabel:Tween = new Tween(myLabel, "rotation", Bounce.easeOut,  360, 390,1,true)
    }

//***************PLAYING MUSIC PLACED EXTERNALLY*******************************//
var my_sound:Sound = new Sound();
my_sound.load(new URLRequest("soothing_music.mp3"));
var my_channel:SoundChannel = new SoundChannel();
my_channel = my_sound.play(0,9999);// 9999 is the number of times the music should loop.

    //*********DETECTING IF MOUSE IS ON THE STAGE TO STOP/RESUME TIMER***********//
    //stopping the timer.
    stage.addEventListener(MouseEvent.MOUSE_MOVE, stop_the_Timer);
    function stop_the_Timer(event:MouseEvent){
    myTimer.stop();
    }
    //resume timer
    stage.addEventListener(Event.MOUSE_LEAVE, resumeTimer);
    function resumeTimer(event:Event){
    myTimer.start();
    }
导入flash.display.Loader;
导入flash.net.URLRequest;
导入flash.events.Event;
导入flash.events.MouseEvent;
导入fl.transitions.Tween;
导入fl.transitions.easing.*;
导入flash.filters.GlowFilter;
导入flash.filters.DropShadowFilter;
导入flash.utils.Timer;
导入flash.events.TimerEvent;
//*****************声明所有变量*****************************//
//该数组具有所有图片标签
var myArray:Array=[“烤鸡”、“面包和面包卷”、“汉堡”、“鸡肉辣味”、“很棒的鱼”];
var myGlow:GlowFilter=新的GlowFilter(0xffffff,1,10,10255);//拯救光明
var myShadow:DropShadowFilter=新的DropShadowFilter(6);//保存阴影以便以后应用
var totalImages=11;
var imageNumber=1;
var myTimer:Timer=新定时器(4000);//4秒定时器
var myLoader:Loader=new Loader();
//************获取位于外部文件夹中的图片********************//
var myRequest:URLRequest=newurlrequest(“Images/”+imageNumber+“.jpg”);
myLoader.load(myRequest);
addChildAt(myLoader,1);//将添加到“按钮”层下但纹理上
//************将图片居中并应用边框和阴影****************//
myLoader.contentLoaderInfo.addEventListener(Event.INIT,getImageInfo);
函数getImageInfo(事件:事件){
var imgX=(stage.stageWidth-myLoader.width)/2;
var imgY=(stage.stageHeight-myLoader.height)/2;
myLoader.x=imgX;
myLoader.y=imgY;//第37、38、39和40行是装载机公式的中心
myLoader.filters=[myGlow,myShadow];//添加白色辉光/灰色阴影
var myTween:Tween=新Tween(myLoader,“alpha”,None.easeNone,0,1,2,true);//应用淡入
}
//**************自动推进********************************//
myTimer.addEventListener(TimerEvent.TIMER,autoadvance);
功能自动推进(事件:TimerEvent){

如果(ImageNumber您是否有任何客户机-服务器解决方案可供使用?此任务不能仅使用客户机解决。没有明确的问题。您有一些代码,您需要一些东西。问题是什么?这是我的问题。我没有客户机-服务器解决方案,也不知道如何使用。这里有许多示例,但无法应用。实际上我认为使用共享球逻辑。(这是Red5演示应用程序)。当服务器单击按钮时,其他客户端按钮也会被单击。我怎么做?(另外,找不到开源的共享球代码)我认为SharedObject不是我的解决方案(它是为adobe media server构建的)。我可以使用不同的套接字打开一个端口,并将该端口用于直接服务器客户端连接吗?as3适合吗?