主要的类代码: <BR />
class com.ycccc.MPDoodle { <BR />
private static var mync:NetConnection; <BR />
private static var my_rso:Object; <BR />
private static var mync_url:String; <BR />
public static var doodle_board:MovieClip; <BR />
private static var press_statue:Boolean; <BR />
public static var max_num:Number; <BR />
private static var doodle_lineColor:Number = random(0xffffff); <BR />
public static function init() { <BR />
netConnect(); <BR />
} <BR />
private static function netConnect() { <BR />
mync = new NetConnection(); <BR />
mync.onStatus = function(info) { <BR />
if (info.code == "NetConnection.Connect.Success") { <BR />
trace("连接成功"); <BR />
initRSO(this); <BR />
drawControl(); <BR />
} <BR />
}; <BR />
if (!mync_url) { <BR />
mync_url = "rtmp://192.168.2.46/ycccc"; <BR />
//mync_url = "rtmp://192.168.2.46/ycccc1"; <BR />
} <BR />
mync.connect(mync_url); <BR />
} <BR />
private static function initRSO(NC) { <BR />
//远程共享对象 <BR />
my_rso = SharedObject.getRemote("myRSO", NC.uri, true); <BR />
my_rso.onSync = function(list) { <BR />
if (!my_rso.data.doodle_time) { <BR />
my_rso.data.doodle_time = 0; <BR />
} <BR />
for (var i in list) { <BR />
var info = list[i]; <BR />
switch (info.code) { <BR />
case "change" : <BR />
trace("change"); <BR />
drawAllLine(info); <BR />
break; <BR />
case "success" : <BR />
trace("success"); <BR />
drawAllLine(info); <BR />
break; <BR />
case "reject" : <BR />
trace("reject"); <BR />
_root.ccc.text = "reject"; <BR />
//当事件类型是"修改不成功"时: <BR />
//break; <BR />
} <BR />
} <BR />
}; <BR />
my_rso.connect(NC); <BR />
my_rso.setFps(120); <BR />
} <BR />
private static function drawAllLine(info) { <BR />
var __time:Number = my_rso.data[info.name].id; <BR />
if (__time<>undefined) { <BR />
_root.createEmptyMovieClip("temp_board"+__time, __time); <BR />
_root["temp_board"+__time].lineStyle(5, my_rso.data[info.name].color); <BR />
_root["temp_board"+__time].moveTo(my_rso.data[info.name].arr[0].x, my_rso.data[info.name].arr[0].y); <BR />
for (var l = 0; l<my_rso.data[info.name].arr.length; l++) { <BR />
_root["temp_board"+__time].lineTo(my_rso.data[info.name].arr[l].x, my_rso.data[info.name].arr[l].y); <BR />
} <BR />
} <BR />
} <BR />
private static function drawControl() { <BR />
var point_arr:Array = []; <BR />
var temp_board:MovieClip; <BR />
var id:Number; <BR />
doodle_board.onPress = function() { <BR />
my_rso.data.doodle_time++; <BR />
id = my_rso.data.doodle_time; <BR />
temp_board = _root.createEmptyMovieClip("temp_board", 99999); <BR />
press_statue = true; <BR />
my_rso.data["doodle_use"+id] = {}; <BR />
my_rso.data["doodle_use"+id].id = id; <BR />
my_rso.data["doodle_use"+id].arr = []; <BR />
my_rso.data["doodle_use"+id].arr.push({x:_xmouse, y:_ymouse}); <BR />
point_arr.push({x:_xmouse, y:_ymouse}); <BR />
temp_board.lineStyle(5, doodle_lineColor); <BR />
my_rso.data["doodle_use"+id].color = doodle_lineColor; <BR />
temp_board.moveTo(_xmouse, _ymouse); <BR />
}; <BR />
doodle_board.onMouseMove = function() { <BR />
updateAfterEvent(); <BR />
if (press_statue and doodle_board.hitTest(_xmouse, _ymouse, true)) { <BR />
my_rso.data["doodle_use"+id].arr.push({x:_xmouse, y:_ymouse}); <BR />
temp_board.lineTo(_xmouse, _ymouse); <BR />
point_arr.push({x:_xmouse, y:_ymouse}); <BR />
} <BR />
}; <BR />
doodle_board.onMouseUp = function() { <BR />
press_statue = false; <BR />
temp_board.clear(); <BR />
if (point_arr.length<=1) { <BR />
my_rso.data["doodle_use"+id].arr = []; <BR />
temp_board.removeMovieClip(); <BR />
} <BR />
if (id>max_num) { <BR />
_root["temp_board"+(id-max_num)].removeMovieClip(); <BR />
my_rso.data["doodle_use"+(id-max_num)].arr = []; <BR />
} <BR />
}; <BR />
} <BR />
} <BR />
//
fla:
import com.ycccc.*;
MPDoodle.max_num = 20;
MPDoodle.doodle_board = mc;
MPDoodle.init();
class com.ycccc.MPDoodle { <BR />
private static var mync:NetConnection; <BR />
private static var my_rso:Object; <BR />
private static var mync_url:String; <BR />
public static var doodle_board:MovieClip; <BR />
private static var press_statue:Boolean; <BR />
public static var max_num:Number; <BR />
private static var doodle_lineColor:Number = random(0xffffff); <BR />
public static function init() { <BR />
netConnect(); <BR />
} <BR />
private static function netConnect() { <BR />
mync = new NetConnection(); <BR />
mync.onStatus = function(info) { <BR />
if (info.code == "NetConnection.Connect.Success") { <BR />
trace("连接成功"); <BR />
initRSO(this); <BR />
drawControl(); <BR />
} <BR />
}; <BR />
if (!mync_url) { <BR />
mync_url = "rtmp://192.168.2.46/ycccc"; <BR />
//mync_url = "rtmp://192.168.2.46/ycccc1"; <BR />
} <BR />
mync.connect(mync_url); <BR />
} <BR />
private static function initRSO(NC) { <BR />
//远程共享对象 <BR />
my_rso = SharedObject.getRemote("myRSO", NC.uri, true); <BR />
my_rso.onSync = function(list) { <BR />
if (!my_rso.data.doodle_time) { <BR />
my_rso.data.doodle_time = 0; <BR />
} <BR />
for (var i in list) { <BR />
var info = list[i]; <BR />
switch (info.code) { <BR />
case "change" : <BR />
trace("change"); <BR />
drawAllLine(info); <BR />
break; <BR />
case "success" : <BR />
trace("success"); <BR />
drawAllLine(info); <BR />
break; <BR />
case "reject" : <BR />
trace("reject"); <BR />
_root.ccc.text = "reject"; <BR />
//当事件类型是"修改不成功"时: <BR />
//break; <BR />
} <BR />
} <BR />
}; <BR />
my_rso.connect(NC); <BR />
my_rso.setFps(120); <BR />
} <BR />
private static function drawAllLine(info) { <BR />
var __time:Number = my_rso.data[info.name].id; <BR />
if (__time<>undefined) { <BR />
_root.createEmptyMovieClip("temp_board"+__time, __time); <BR />
_root["temp_board"+__time].lineStyle(5, my_rso.data[info.name].color); <BR />
_root["temp_board"+__time].moveTo(my_rso.data[info.name].arr[0].x, my_rso.data[info.name].arr[0].y); <BR />
for (var l = 0; l<my_rso.data[info.name].arr.length; l++) { <BR />
_root["temp_board"+__time].lineTo(my_rso.data[info.name].arr[l].x, my_rso.data[info.name].arr[l].y); <BR />
} <BR />
} <BR />
} <BR />
private static function drawControl() { <BR />
var point_arr:Array = []; <BR />
var temp_board:MovieClip; <BR />
var id:Number; <BR />
doodle_board.onPress = function() { <BR />
my_rso.data.doodle_time++; <BR />
id = my_rso.data.doodle_time; <BR />
temp_board = _root.createEmptyMovieClip("temp_board", 99999); <BR />
press_statue = true; <BR />
my_rso.data["doodle_use"+id] = {}; <BR />
my_rso.data["doodle_use"+id].id = id; <BR />
my_rso.data["doodle_use"+id].arr = []; <BR />
my_rso.data["doodle_use"+id].arr.push({x:_xmouse, y:_ymouse}); <BR />
point_arr.push({x:_xmouse, y:_ymouse}); <BR />
temp_board.lineStyle(5, doodle_lineColor); <BR />
my_rso.data["doodle_use"+id].color = doodle_lineColor; <BR />
temp_board.moveTo(_xmouse, _ymouse); <BR />
}; <BR />
doodle_board.onMouseMove = function() { <BR />
updateAfterEvent(); <BR />
if (press_statue and doodle_board.hitTest(_xmouse, _ymouse, true)) { <BR />
my_rso.data["doodle_use"+id].arr.push({x:_xmouse, y:_ymouse}); <BR />
temp_board.lineTo(_xmouse, _ymouse); <BR />
point_arr.push({x:_xmouse, y:_ymouse}); <BR />
} <BR />
}; <BR />
doodle_board.onMouseUp = function() { <BR />
press_statue = false; <BR />
temp_board.clear(); <BR />
if (point_arr.length<=1) { <BR />
my_rso.data["doodle_use"+id].arr = []; <BR />
temp_board.removeMovieClip(); <BR />
} <BR />
if (id>max_num) { <BR />
_root["temp_board"+(id-max_num)].removeMovieClip(); <BR />
my_rso.data["doodle_use"+(id-max_num)].arr = []; <BR />
} <BR />
}; <BR />
} <BR />
} <BR />
//
fla:
import com.ycccc.*;
MPDoodle.max_num = 20;
MPDoodle.doodle_board = mc;
MPDoodle.init();
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}