我正在構建共享白板,並且無法共享共享白板。我已經成功創建了一個共享方法,並且在管理控制檯中看到共享對象,它已經存在並已連接,但無法在其他瀏覽器上看到圖形。我張貼整個動作代碼。如果可以,請你幫助我。將不勝感激。我對動作非常陌生。帶AS3的共享白板。代碼
package
{
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.net.SharedObject;
import flash.events.NetStatusEvent;
import flash.events.SyncEvent;
import flash.net.NetConnection;
import flash.events.MouseEvent;
public class PenSOmc extends Sprite
{
private var drawing_so:SharedObject;
private var nc:NetConnection;
private var good:Boolean;
private var isDrawing:Boolean;
private var penMC:MovieClip;
private var rpenMC:MovieClip;
// Mouse Coordinates
private var startX:int;
private var startY:int;
private var endX:int;
private var endY:int;
// Remote mouse coordinates
private var rstartX:int;
private var rstartY:int;
private var rendX:int;
private var rendY:int;
public function PenSOmc()
{
penMC = new MovieClip();
var rtmpNow:String="rtmp://localhost/whiteboard";
nc=new NetConnection;
nc.connect(rtmpNow);
nc.addEventListener(NetStatusEvent.NET_STATUS,doSO);
stage.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing);
stage.addEventListener(MouseEvent.MOUSE_MOVE, drawing);
stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing);
addChild(penMC);
}
private function doSO (e:NetStatusEvent):void
{
good=e.info.code == "NetConnection.Connect.Success";
if (good)
{
//Shared object
drawing_so = SharedObject.getRemote("draw",nc.uri,false);
drawing_so.connect(nc);
drawing_so.addEventListener(SyncEvent.SYNC,doUpdate);
trace("Connected");
}
}
private function doUpdate (se:SyncEvent):void
{
for (var cl:int = 0; cl < se.changeList.length; cl++)
{
trace(se.changeList[cl].code);
switch(se.changeList[cl].code)
{
case "clear":
break;
case "success":
break;
case "change":
//var points:String = sharedObject.data.points;
var pointsArray:Array = drawing_so.data.points.split(/,/);
var rstartX:int = int(pointsArray[0]);
var rstartY:int = int(pointsArray[1]);
var rendX:int = int(pointsArray[2]);
var rendY:int = int(pointsArray[3]);
rpenMC = new MovieClip();
rpenMC.graphics.moveTo(rstartX,rstartY);
rpenMC.graphics.lineTo(rendX,rendY);
addChild(rpenMC);
break;
}
}
}
private function startDrawing (e:MouseEvent):void
{
trace("Start drawing");
isDrawing = true;
var penTipSize:uint = 1;
var penColor:Number = 0x000000;
penMC.graphics.lineStyle(penTipSize, penColor, 1.0);
startX = mouseX;
startY = mouseY;
penMC.graphics.moveTo(startX, startY);
}
private function stopDrawing (e:MouseEvent):void
{
trace("Stop drawing");
isDrawing = false;
}
private function drawing (e:MouseEvent):void
{
if (isDrawing)
{
trace("Drawing");
endX = mouseX;
endY = mouseY;
drawing_so.setProperty("points",startX + "," + startY + "," + endX + "," + endY);
penMC.graphics.lineTo(endX, endY);
}
}
}
}
你可以截取點的座標並用線連接它們嗎? – alxx 2010-08-19 06:26:13
我不知道該怎麼做。 – clientbucket 2010-08-19 14:06:59
你知道該怎麼做嗎?可能嗎?我不確定。這是一個建議或問題嗎? – clientbucket 2010-08-19 14:43:39