明天就要真正意义上结束这个暑假开学了,其实对我来说只是休息了1周又重新上课...CS本学期在8.5号就开学了...回想一周前还是满脑子飞的EZ-UML、答辩、头脑秀逗得老师、GeneralLinkableXXXXX(为了保护小组各成员不至于再度发疯,部分字符已用XXX表示),这学期真的算不了什么。
下面是我最想说的
Flash Website v2
项目开工:2005.7.10
起因:我对我自己Flash网站v1的强烈不满
过程:想出了个ReformCore概念,设计了新的logo,弄来了嵌入式编译器
目的:制作更漂亮、更人性化、更加符合我审美的新Flash网站(后期加上的目标:符合web2.1)
结果:由于当时暑假考驾照,网站把ReformUI的雏形完毕即告流产
复工:2006.1.x
原因:放寒假了,没事可做
过程:完善ReformUI
结果:由于每天要赶早去徐汇上GRE,同时PRP项目在身,项目搁浅
复工x2:2006.7
原因:实在看不下这个难产的项目了+原先的设计不符合当前审美
过程:重新设计界面+开始写主要构架
结果:主要构架完成,但明天要开学了...
项目截至今天已经超过一年的建设时间了...天哪~
为了逼自己去完成这个项目,现把一些内部代码资料公布...
我不做解释,大家看情况理解吧~
mainsite.obj_main.AddBlock("test");
CreateWindow("GraphWin",40,50,true,Script_win);
GraphWin.SetClientSize(300,300);
GraphWin.SetWindowText("DoModal测试");
CreateUIHost(this,"obj",33);
obj.SetHostSize(1440,1000);
obj.StretchPic(false);
obj.CompleteLook(false);
obj.ShowBorder(false);
obj.LoadObject("http://www.csksoft.net/data/dawnofReform.jpg");
CreateWindow("OldSiteWin");
OldSiteWin.SetWindowText("以前的Flash网站-CSKSOFT WEBSITE v1 All right reserved");
OldSiteWin.SetWindowSize(753,580);
OldSiteWin.Attach("/fla/main.swf",true);
CreateWindow("win2");
win2.SetWindowText("PicWindow");
win2.SetWindowSize(500,350);
win2.Attach("http://www.csksoft.net/data/dawnofReform.jpg",true);
win2.container.objhost.SetLinkURL("http://www.csksoft.net/data/dawnofReform.jpg");
CreateWindow("rwin");
rwin.SetWindowText("外部组件调用");
rwin.SetClientSize(250,150);
rwin.Attach("fla/load_test.swf",true);
CreateUIHost(this,"obj",33);
obj.SetHostSize(250,150);
obj.LoadObject("fla/load_tedst.swf");
i=100;
t = setInterval(script, 10,
"if (i<=0) {clearInterval(t); t = undefined;}msgout(i);i--;",
this);
dwColor = 0x1a67f4;
CreateWindow("GraphWin",50,50);
GraphWin.SetClientSize(50,50);
GraphWin.container.beginFill(dwColor,0xFF);
GraphWin.container.moveTo(10, 10);
GraphWin.container.lineTo(10, 40);
GraphWin.container.lineTo(40, 40);
GraphWin.container.lineTo(40, 10);
GraphWin.container.lineTo(10, 10);
GraphWin.container.endFill();
CreateWindow("GraphWin",40,50);
GraphWin.SetClientSize(300,300);
GraphWin.SetWindowText("绘图窗口");
GraphWin.container.createEmptyMovieClip("graph",2);
with (GraphWin.container.graph) {
lineStyle (0, 0xFF0000, 100);
for (x = -5; x<5; x+=0.2) {
y= Math.sin(x)*30;
if (x==-5)
{
moveTo(x*30+150,150-y);
}
else
{
lineTo (x*30+150,150-y);
}
}
}
t = setInterval(script, 500,
"today_date = new Date();msgcls();msgout(today_date.toString());",
this);
CreateTween(Script_win,"_x","elastic.easein",10,400,50,100);
var sXML;
sXML=XML_CreateRPCRequest("GetBlogConfig",Array("bIsMiniMode","strToken"),Array("false",GLOBAL_strTokenID));
sXML.send("/sitecmd.asp","_blank");
var myObj;
myObj = new Object();
myObj.item1 = "aaa";
myObj.attributes=new Object();
myObj.attributes.id=3;
myObj.value = "ddd";
myObj.node = new Object();
myObj.node.value="ccc";
var myxml;
myxml = new XML("");
ConstructXmlSubTree(myxml,"ss",myObj,myxml);
msgout(myxml);
//XWindow //ReformUI.XWindow
SetWindowSize(nWidth:Number, nHeight:Number);
SetClientSize(nWidth:Number, nHeight:Number);
SetWindowText(sTitle:String);
GetWindowText():String;
SetWindowFocus();
GetListID():Number;
Attach(strObjID:String, bIsFromURL:Boolean):Boolean;
OnClose(); //CallBack
Destroy():Boolean; //return false if refused by OnClose();
ExpendWindow(bExpend:Boolean);
GetWindowState(nStateID:Number);
//nStateID=1 :IsTransAble
//nStateID=0 :IsExpend
AlphaBlendWindow(bAlpha:Boolean);
//---------------------------------------------------members
TitleBar //ReformUI.XWindow.TilteBar
container //ReformUI.XWindow.Container
var bIsObjFromURL:Boolean;
var bIsContained:Boolean;
generalObj,objhost
SetObj(strObjID:String,bIsFromURL:Boolean):Boolean
DestroyAll();
BottomBarA //ReformUI.XWindow.BottomBar
var nWindowID:Number;
var strHostID:String;
var nWindowHeight:Number;
var nWindowWidth:Number;
var bIsWindowExpend:Boolean;
var fInterval;
//----------------------------------------------------ReleatedAPI
GetTopLevelWindowID():Number;
GetWindowTopLevel():Number;
CloseAllWindow();
CreateWindow(strWindowID:String, nX:Number, nY:Number , bIsDoModal:Boolean , objParent);
XWindowList:Array;
var nXWinBoundWidth:Number,nXWinBoundHeight:Number;
GetXWinBoundBox():Array;
SetXWinBoundBox(nWidth:Number,nHeight:Number);
//UIHost //RefromUI.UIhost
LoadObject(sURL:String,bIsRes:Boolean);
IsObjLoaded():Boolean;
LoadPrecent():Number;
GetObjSize():Number;
StretchPic(bIsStretch:Boolean);
GetObjVersion():Number;
CustomFunction(FuncName:String, Arg1, Arg2); //var CustomResult
SetHostSize(nWidth:Number, nHeight:Number);
SetHostIDTitle(strTitle:String);
SetLinkURL(sURL:String);
ShowBorder(bIsShow:Boolean);
ShowDataInfo(bIsShow:Boolean);
CompleteLook(bIsShow:Boolean);
EnableClick(bEnable:Boolean);
Destroy();
//Events
OnClick(); return false when cancel
OnLoadComplete();
//---------------------------------------------------members
var HostWidth:Number, HostHeight:Number;
var IsContendObj:Boolean;
var ObjURL:String;
var HostIDName:String;
var ObjVersion:Number;
var LinkURL:String;
var IsShowBorder:Boolean;
var bIsSretchPic:Boolean;
var CustomArg1, CustomArg2, CustomResult;
objcontainer
//----------------------------------------------------ReleatedAPI
CreateUIHost(strParentID:String, strHostID:String, nLevel:Number, nX:Number, nY:Number)
//TxtHolder //ReformUI.TxtHolder
SetSize(nWidth:Number, nHeight:Number);
GetSize():Array;
EnableScrollBar(bEnabled:Boolean);
EnableEditable(bEnabled:Boolean);
UpdateLayout();
EnableWordWrap(bEnabled:Boolean);
/////////////////////////////////
//Not complete yet!
LoadTxt(strURL:String, bIsHtml:Boolean, nPostMethod:Number);
//////////////////////////////////
SetText(strT:String, bIsHtml:Boolean);
GetText(bNeedSrc:Boolean):String;
UpdateScrollBar();
ClearText();
Destroy();
//---------------------------------------------------members
var nSelfHeight:Number, nSelfWidth:Number;
var bIsEnableScrollBar:Boolean;
var bIsEnableWordwrap:Boolean;
hbar,scrollbar;
//----------------------------------------------------ReleatedAPI
CreateTxtHolder(strParentID:String, strHolderID:String, nLevel:Number, nX:Number, nY:Number);
//ScrollBar //ReformUI.ScrollBar
UpdateBar();
SetStepLength(nStep:Number);
GetStepLength():Number;
SetBarLength(nHeight:Number); //def=100;
GetBarLength():Number;
SetRange(nMaxPos:Number); //startup with 100
GetRange():Number;
OnPosChange(nPos); //CallBack,return false for undo
SetPos(nPos:Number);
GetPos():Number;
Destroy();
//---------------------------------------------------members
var nCurrentPos:Number;
var nStepLength:Number;
var nMax:Number;
var nSelfHeight:Number, nDragLength:Number;
var fInterval;
var bIsStartDrag:Boolean;
//----------------------------------------------------ReleatedAPI
CreateScrollBar(strParentID:String, strBarID:String, nLevel:Number, nX:Number, nY:Number);
//progressBar //ReformUI.progressBar
SetPos(Pos:Number);
GetPos():Number;
Destroy();
//---------------------------------------------------members
var nPos:Number = 0;
//----------------------------------------------------ReleatedAPI
CreateProgressBar(strParentID:String, strBarID:String, nLevel:Number, nX:Number, nY:Number);
//LoadUI.MainLogo //reformUI.LoadUI.MainLogo
OnCancel=function() //CallBack
OnRetry=function() //CallBack
SetLoadCnt(ObjCnt);
SetTitle(StrTxt:String);
ShowCancelBtn(bShow:Boolean);
SetFailedFlag(bShow:Boolean);
Destroy();
//-----------------------------------------------------ReleatedAPI
CreateLoadUI(strParentID:String, strLogoID:String, nLevel:Number, nX:Number, nY:Number,nType:Number);
//nType:0 for MainLogo
FlatButton //ReformUI.Button
SetLabel(strNewLabel:String):String;
GetLabel():String;
SetBtnSize(nWidth:Number, nHeight:Number);
Destroy();
EnableBtn(bEnable:Boolean):Boolean;
SetLabelColor(newColor:Color);
//Event
OnRollOver;OnRollOut;OnMouseDown;OnMouseUp;OnClick
//-----------------------------------------------------ReleatedAPI
CreateButton(strParentID:String, strBtnID:String, nLevel:Number, nX:Number, nY:Number);
dragbar //ReformUI.dragbar
SetWidth(nWidth:Number):Number;
UpdateUI();
SetPos(Pos:Number):Number;
GetPos():Number;
SetRange(nMin:Number,nMax:Number):Boolean;
GetMin():Number;
GetMax():Number;
//----var
Width:Number;
nPos,nMin,nMax:Number;
//----events
UpdateUI,onChange,onDrag(x,total) //use addListener
//-----------------------------------------------------ReleatedAPI
CreateDragBar(strParentID:String, strID:String, nLevel:Number, nX:Number, nY:Number);
/*
url tip define:
SubView=3&subdir...&UUID=
*/
//SiteObjs
obj:mainsite
addProxyAlignObj(objRef:Object, strAlignType:String):Boolean //strAlignType "l","r","m"
RemoveProxyAlignObj(objRef:Object):Boolean
SetWidth(nWidth:Number):Number
ParseUrlCmd(strCmd:String):Boolean
events:
broadcast:OnWidthChg(x:int);
obj:mainsite.obj_main
SetBlockWidth(size:Number):Boolean
GetBlockSize(strName:String, nID:Number):MovieClip
RemoveBlockByID(nID:Number):Boolean
RemoveBlock(objBlock:Object):Boolean
OnItemSizeChg(objBlock:Object)
GetBlockID(objBlock:Object):Number
Display(strCmd:String):Boolean //cmd:show;hide;distroy
events:
broadcast:OnHolderSizeChg(size:int);
//End of SiteObjs
var GLOBAL_nDownloadingSpeed:Number; //kb per sec
var GLOBAL_strMainSwfURL:String;
var GLOBAL_strTokenID:String;
//BAISC
parseBoolean(string:String) :Boolean
//API
//Site Config Var:
var strSiteInfo_Title:String, strSiteInfo_Version:String, strSiteInfo_LastUpdate:Date;
var bSiteConfig_UI_EnableShadow:Boolean;
var nSiteConfig_ScriptWinX:Number, nSiteConfig_ScriptWinY:Number, strSiteConfig_ScriptWinCnt:String,bSiteConfig_ScriptWinShow:Boolean;
var bSiteConfig_SndEnabled:Boolean, strSiteConfig_SndSrc:String;
var strSiteConfig_ExecScript:String;
var nSiteCnt_DefView:Number;
var nSiteCnt_ViewNum:Number;
var lstSiteView_ImgURL:Array;
var lstSiteView_ConfigURL:Array;
var lstSiteView_IsExpend:Array;
var lstSiteView_Title:Array;
var lstSiteView_TitleEn:Array;
var lstSiteView_Description:Array;
var lstSiteLink_LnkIcon:Array;
var lstSiteLink_LnkDest:Array;
var lstSiteLink_LnkType:Array;
var lstSiteLink_LnkTitle:Array;
//
_split(str);
GetRandomToken:String
CreateTween(objDestObj:Object,strEffectProperty:String,strTweenType:String,StartVal,EndVal,nDuration:Number,nFPS:Number);
GetMajorFlaVer();
GetQueryString(strURL:String,strStringName:String):String;
GetSiteInfo(strInfoType:String);
//SiteWidth;SiteHeight;SiteTitle;SiteVersion;DefSrciptTxt;LastUpdate;UI_EnableShadow
//ScriptWinIniPosX;ScriptWinIniPosY;ShowScriptWinAuto;Snd_EnableAuto;Snd_SrcURL;
//AutoExecScript;DefViewID;SiteViewTotal;lstViewIconURL;lstViewConfigURL;lstViewExpend;
//lstViewTitle;lstViewTitleEn;lstViewDescription;lstSiteLnkIcon;lstSiteLnkDest;lstSiteLnkType
//lstSiteLnkTitle
ReadSiteConfig(ConfigXML:XML);
CreateXMLPost(PostType:String);
VerifyCmdResponse(SrcXml:XML);
XML_CreateDataRequest(strDataName:String, lstInfoArg:String):XML
SolveRPCResponseXML(xmlRawDest:XML):Object
SolveRPCResponse(xmlRawDest:XML):Object
XML_CreateRPCRequest2(strRPCName:String, objArgList:Object):XML
XML_CreateRPCRequest(strRPCName:String, lstArgNameLst:Array, lstArgValLst:Array):XML
CreateXMLPost2(PostType:String):XML
CreateScriptWindow();
msgout(strMsg:String);
msgcls();
ShowScriptWindow(bShow:Boolean);
SetScriptTxt(strScriptTxt:String);
XOR_Encode(strSrc:String,strPWD:String):String;
IsScriptWindowVisible();
CallRPC(strRPCName:String, objArg:Object, funcOnResponse:Function):Boolean;
UpdateBrowseState(strBrowStr:String);
objBrowseState.strAction
objBrowseState.addListener
@Event.OnBrowCmd
//Component
ScriptWindow_core //mov_main.ScriptWindow.Cont
-------------------------------
SetScriptBuf(strNewVal:String)
ClsTxt(nClsType:Number)
// -2 clear current
// -1 clear all
//0 \ 1
PostPrint(strPrintStr:String);
SetEditorVal(strNewVal:String);
GetEditorVal():String;
GetBufVal(nBufType:Number):String;
SetPostBuf(strNewVal:String);
UpdateBuf(nBufType:Number, bSetBuf:Boolean);
Execute(strScriptStr:String);
SetView(nState:Number);
请不要用于非法用途和任何我不愿看到的行为
因为听gf说会有月食,反正最近修养阶段,没什么事可做,就熬夜看吧,顺便拍了些东西
不过我不是专业玩家,不,业余的也不是,所以用DV拍得东西就不拿出来了...
本次月食的情况
初亏2:05分;食甚2:51分;复圆3:38分
下面是我在食甚前的照片,后面的就一样了,没必要拍,困死了,睡觉去了。拍得不好~
要下载文件的可以去我们的临时发布页面:http://ezuml.csksoft.net
下面简要介绍下最终的无敌bug~
经过各位成员的努力,我们终于解决了EZ-UML的BOSS级BUG:影子模式
下面是通关日志:
进入关卡:最终话,影子传说
第一回合
BOSS影子传说使用密集:无敌OOMSymbol幻影大法...
EZ-UML中招,内部OOMSymbol分裂,文件读写崩溃
对各成员造成伤害:失去一晚睡眠时间
第二回合
EZ-UML小组成员使用咒语
if (left.equal("right"))
{
return "right";
}
if (up.equal("down"))
{
return "down";
}
对BOSS造成伤害:减少100行错误代码,晕眩伤害,持续时间:第二天答辩前
第三回合
BOSS联合软工老师发动思路混乱干扰
EZ-UML小组成员集体崩溃,被判部分成员重新答辩
第四回合
EZ-UML小组成员发出冲击波:"GerneralLinkableSymbol! GerneralLinkableRECT!"
BOSS消失。。。任务完成
任务总结
EZ-UML小组成员获得软件EZ-UML可发布版本一个、一周休息时间、EZ-UML发布页面一个
获取经验:学会了GerneralLinkableSymbol必杀技、学会了代码性别学、学会了词汇“突然”
以上文字纯属胡扯,如有不懂得问我~
奋斗了4个星期,终于结束了,虽然最终EZ-UML还是有一定bug。不过相信对于一个软件工程课程大作业来说,这的确已经够了。
chris在第4周加入了我们组,随后工程量就是恐怖的增长...为了最终答辩也通宵了一次。后来ppt准备也不充分。对老师我也不想说什么,总之目前:身心疲惫。
空下来去cnBeta看了看,我不解的是:各类虚假、垄断的流氓,还有各类的黑幕,为什么会在我们这个“和谐”的社会中频发。
后来想到chris在SE答辩好对我说的话,是阿,我决定了,就目前,如果我创业,我不会选国内,如果我搞研究,我不会在国内
我自然是爱国的,但国内或许我无法适应了,也有可能是我把一些现象夸大了。不过与其被挂上不爱国的恶名,还是好些那种勾心斗角、浮夸、急功近利的氛围好。不过我也懂知恩图报的道理。
想想如果自己今后做了什么东西,也落个东方微点下场,按我的性格,我宁愿去造反。
后来去下载了这个软件,说真的,如果我非要用防毒软件的话,我就用这个了
好了,不说丧气话了,最后发些EZ-UML的图片。EZ-UML今后会不断开发,等一些明显bug修正了我会放出一些下载链接。各位Teammate辛苦了,我们先“突然”休息个礼拜吧
-------------------------------------------
增加了Workspace视图,可以拖动元件,产生分层包图或者InnerClass的结构UseCase视图
支持文字、图形反锯齿显示
编辑类属性的画面