Lively Kernel canvas
// this script is evaluated on world load
400)
this.error('Error in login/receive from stream. Message: ' + newText);
// newText can be a list of cr lf separated json messages
// call onLogin/onReceive just with one json obj at a time
var messages = newText.split('\r\n');
messages.pop(); // remove last empty string
messages.forEach(function(message) {
var json = lively.webcollab.parseJson(message);
if (reqTextPos === 0 || json.isLoginMessage /*FIXME under heavy load reqTextPos not 0 when login response arrives*/) {
this._isLoggedIn = json && json.isSuccess;
this.onLogin(req);
} else {
this.onReceive(json);
}
}, this);
}]]> 400) {
var json = JSON.unserialize(req.responseText);
this.error('Logout not successful ' + json.status);
}
this._isLoggedIn = false;
}]]> 400)
this.error('Error requesting active users');
var json = JSON.unserialize(req.responseText);
this.onGetActiveUsers(json.activeUsers);
}]]>= 400)
this.error('Failure issuing request. Status: ' + req.status + ' ' + req.responseText);
};
req.open(method, url, !sync);
req.send(content);
return req;
}]]>
ProgrammierenimWebmitLivelyKernel18null
savefalsenull
truenull
-HilfefürinteraktiveEntwicklung-alt+dführteineZeile/Bereichausalt+pführteineZeile/BereichausundfügtdasErgebnisindenTexteinEinenCodeBrowseröffnen:WorldMenu->Tools...->LocalcodeBrowserEinTextFensterzumprogrammieren:WorldMenu->ComplexMorphs...->TextWindowEinenMorphbenennen:RechtsklickaufMorph->Properties...->editname...EinenButtonbauen:ComplexMorphs...->ButtonMorph.DannRechtsklickaufButton->Editscript/EditlabelBenanntenMorphimTextreferenzieren:$morph('dieserTextMorph')EineneueKlasseoderbeimStartauszuführendenCodeanlegen:KontextmenüimLocalcodeBrowseröffnenundaddclassoderadddoitanklicken14 Tools... -> Local code Browser\nEin Text Fenster zum programmieren: World Menu -> Complex Morphs... -> Text Window\n\nEinen Morph benennen: Rechtsklick auf Morph -> Properties... -> edit name...\nEinen Button bauen: Complex Morphs... -> ButtonMorph. Dann Rechtsklick auf Button -> Edit script/Edit label\nBenannten Morph im Text referenzieren: $morph('dieserTextMorph')\n\nEine neue Klasse oder beim Start auszuführenden Code anlegen:\nKontextmenü im Local code Browser öffnen und add class oder add doit anklicken\n"]]>10
10000.18651844944568247Wikicontroltrue
10000.000032007534481322204Wikicontroltrue
saveas...falsenullnull
10000.0013162913525922716Wikicontroltrue
null
-KleinerJavaScriptÜberblick-Dynamischgetyptvarx='EinString';vary=10;x+y;Arraysarray=[1,'String']SyntaxähnlichzuCfor(vari=0;i<10;i++){varmorph=Morph.makeCircle(pt(100+(i*40),100),20)morph.openInWorld();}Objektorientiertobjekt={x:1,y:'HalloWelt',toString:function(){returnthis.y+this.x}}objekt.toString()KlassenObject.subclass('MyNewClass',{einAttribut:5,eineMethode:function(){return'HalloWelt'+this.einAttribut}})instanz=newMyNewClass()instanz.eineMethode()KleinesBeispielprogrammgraph=Morph.makeLine([pt(0,0)],2,Color.black)graph.openInWorld()for(varx=0;x<2*Math.PI;x+=0.1){vary=Math.sin(x)*100+200;varpoint=pt(x*100,y);graph.shape.addPoint(point);}graph.remove()145
10002.220838643764215Wikicontroltrue
10008.371718393517405Wikicontroltrue
null45