new "object" reporter in the Sensing category for getting a sprite by its name

pull/89/head
jmoenig 2019-01-28 10:10:10 +01:00
rodzic b9bc9d1446
commit c50396fdf7
4 zmienionych plików z 35 dodań i 4 usunięć

Wyświetl plik

@ -9,6 +9,7 @@
* parse JSON using the SPLIT reporter
* new "aspect AT location" reporter in Sensing category for sniffing colors and sprites
* new blocks for setting and changing the stage's background color
* new "object" reporter in the Sensing category for getting a sprite by its name
* new "string" library, thanks, Brian
* added "neg" selector to monadic function reporter in "Operators" category
* enhances support for embedding Snap in other website, thanks, Bernat!
@ -32,6 +33,7 @@
* German
### 2019-01-28
* Threads, Objects: new "object" reporter in the Sensing category
* Greek translation update, thanks, Alexandros!
* pushed version to "Beta"

Wyświetl plik

@ -7,8 +7,8 @@
<script type="text/javascript" src="src/morphic.js?version=2019-01-10"></script>
<script type="text/javascript" src="src/widgets.js?version=2018-10-02"></script>
<script type="text/javascript" src="src/blocks.js?version=2019-01-23"></script>
<script type="text/javascript" src="src/threads.js?version=2019-01-25"></script>
<script type="text/javascript" src="src/objects.js?version=2019-01-23"></script>
<script type="text/javascript" src="src/threads.js?version=2019-01-28"></script>
<script type="text/javascript" src="src/objects.js?version=2019-01-28"></script>
<script type="text/javascript" src="src/gui.js?version=2019-01-28"></script>
<script type="text/javascript" src="src/paint.js?version=2018-10-02"></script>
<script type="text/javascript" src="src/lists.js?version=2019-01-10"></script>

Wyświetl plik

@ -83,7 +83,7 @@ BlockEditorMorph, BlockDialogMorph, PrototypeHatBlockMorph, localize,
TableMorph, TableFrameMorph, normalizeCanvas, BooleanSlotMorph, HandleMorph,
AlignmentMorph, Process, XML_Element, VectorPaintEditorMorph*/
modules.objects = '2019-January-23';
modules.objects = '2019-January-28';
var SpriteMorph;
var StageMorph;
@ -847,6 +847,11 @@ SpriteMorph.prototype.initBlocks = function () {
spec: '%att of %spr',
defaults: [['costume #']]
},
reportObject: {
type: 'reporter',
category: 'sensing',
spec: 'object %spr'
},
reportURL: {
type: 'reporter',
category: 'sensing',
@ -2027,6 +2032,8 @@ SpriteMorph.prototype.blockTemplates = function (category) {
if (SpriteMorph.prototype.enableFirstClass) {
blocks.push(block('reportGet'));
}
blocks.push(block('reportObject'));
blocks.push('-');
blocks.push(block('reportURL'));
@ -7238,6 +7245,8 @@ StageMorph.prototype.blockTemplates = function (category) {
if (SpriteMorph.prototype.enableFirstClass) {
blocks.push(block('reportGet'));
}
blocks.push(block('reportObject'));
blocks.push('-');
blocks.push(block('reportURL'));

Wyświetl plik

@ -62,7 +62,7 @@ StageMorph, SpriteMorph, StagePrompterMorph, Note, modules, isString, copy,
isNil, WatcherMorph, List, ListWatcherMorph, alert, console, TableMorph, Color,
TableFrameMorph, ColorSlotMorph, isSnapObject, Map*/
modules.threads = '2019-January-25';
modules.threads = '2019-January-28';
var ThreadManager;
var Process;
@ -3584,6 +3584,26 @@ Process.prototype.reportGet = function (query) {
return '';
};
Process.prototype.reportObject = function (name) {
var thisObj = this.blockReceiver(),
thatObj,
stage;
if (thisObj) {
this.assertAlive(thisObj);
stage = thisObj.parentThatIsA(StageMorph);
if (stage.name === name) {
thatObj = stage;
} else {
thatObj = this.getOtherObject(name, thisObj, stage);
}
if (thatObj) {
this.assertAlive(thatObj);
}
return thatObj;
}
};
Process.prototype.doSet = function (attribute, value) {
// experimental, manipulate sprites' attributes
var name, rcvr;