xly wrote:
@bharvey
Don't care too much of deadlines, it took some time also to Michelangelo to achieve his Sixtine Chapel masterpiece !
Ah, yes, but we're spending a lot of money to make a big splash at SIGCSE this year and I don't want it to turn into a little puddle.
Offline
I'm not sure if this has been reported or not so far, but when I use the alert block, after selecting "ok" from the popup, the block will often automatically latch onto my cursor as if I grabbed it.
Offline
bharvey wrote:
P.S. I'd tell you how pleased I was to see your sig only it's against the rules.
And I'd say I'm sad to see you go.
Offline
xly wrote:
@ Jens
Strangely enough, I can't make work, as said above, a simple block ABS val with IF Then + REPORT, I get a redfreeze either with Firefox or Chrome ! ?
Confirmed. Interestingly, if I say ALERT [ABS (7)] I don't get the red border but no alert happens either.
Offline
The new (XML) project saving is finished! You can preview it on the dropbox build—don't worry, there's a converter for the old format: just open your project from the menu and click "yes" in the confirmation dialog.
Sample Project (Before):
vee:{"$":"stage","bounds":{"$":"rectangle","origin":{"$":"point","x":689,"y":0,"$id":3},"corner":{"$":"point","x":1169,"y":360,"$id":4},"$id":2},"sprites":{"0":{"$":"sprite","bounds":{"$":"rectangle","origin":{"$":"point","x":898.9999999999998,"y":269.99999999999994,"$id":8},"corner":{"$":"point","x":959,"y":330.00000000000017,"$id":9},"$id":7},"visible":true,"heading":0,"color":{"$":"color","a":1,"r":80,"g":80,"b":80,"$id":10},"children":{"$":"array","length":0,"$id":11},"parent":{"$ref":1},"scripts":{"$":"scripts","bounds":{"$":"rectangle","origin":{"$":"point","x":200,"y":0,"$id":14},"corner":{"$":"point","x":689,"y":603,"$id":15},"$id":13},"owner":{"$ref":6},"children":{"0":{"$":"block","blockType":"-","parent":{"$ref":12},"color":{"$":"color","a":1,"r":74,"g":108,"b":212,"$id":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":234,"y":55,"$id":20},"corner":{"$":"point","x":364,"y":79,"$id":21},"$id":19},"selector":"gotoXY","spec":"go to x: %n y: %n","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"0","isReadOnly":false,"$id":23},"1":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"-120","isReadOnly":false,"$id":24},"$":"array","length":2,"$id":22},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":17},"color":{"$":"color","a":1,"r":0,"g":161,"b":120,"$id":26},"bounds":{"$":"rectangle","origin":{"$":"point","x":234,"y":76,"$id":28},"corner":{"$":"point","x":274,"y":97,"$id":29},"$id":27},"selector":"clear","spec":"clear","inputs":{"$":"array","length":0,"$id":30},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":25},"color":{"$ref":26},"bounds":{"$":"rectangle","origin":{"$":"point","x":234,"y":94,"$id":33},"corner":{"$":"point","x":296,"y":115,"$id":34},"$id":32},"selector":"down","spec":"pen down","inputs":{"$":"array","length":0,"$id":35},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":31},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":234,"y":112,"$id":38},"corner":{"$":"point","x":362,"y":136,"$id":39},"$id":37},"selector":"setHeading","spec":"point in direction %dir","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":{"(90) right":90,"(-90) left":-90,"(0) up":"0","(180) down":180,"$id":42,"$":"object"},"text":"0","isReadOnly":false,"$id":41},"$":"array","length":1,"$id":40},"nextBlock":{"$":"block","blockType":"c-","parent":{"$ref":36},"color":{"$":"color","a":1,"r":128,"g":128,"b":128,"$id":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":234,"y":133,"$id":46},"corner":{"$":"point","x":274,"y":154,"$id":47},"$id":45},"selector":"evaluateCustomBlock","spec":"vee","inputs":{"$":"array","length":0,"$id":48},"nextBlock":null,"definition":{"$":"customBlockDefinition","category":null,"declarations":{"$id":50,"$":"object"},"isGlobal":false,"spec":"vee","type":"command","body":{"$":"context","emptySlots":0,"expression":{"$":"block","blockType":"-","parent":null,"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":437,"$id":54},"corner":{"$":"point","x":669,"y":461,"$id":55},"$id":53},"selector":"turn","spec":"turn %n degrees","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"-45","isReadOnly":false,"$id":57},"$":"array","length":1,"$id":56},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":52},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":458,"$id":60},"corner":{"$":"point","x":661,"y":482,"$id":61},"$id":59},"selector":"forward","spec":"move %n steps","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"69","isReadOnly":false,"$id":63},"$":"array","length":1,"$id":62},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":58},"color":{"$":"color","a":1,"r":230,"g":168,"b":34,"$id":65},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":479,"$id":67},"corner":{"$":"point","x":734,"y":508,"$id":68},"$id":66},"selector":"doRun","spec":"run %cmd %inputs","inputs":{"0":{"$":"block","blockType":"r","parent":{"$ref":64},"color":{"$":"color","a":1,"r":217,"g":77,"b":17,"$id":71},"bounds":{"$":"rectangle","origin":{"$":"point","x":584.000001,"y":483.000001,"$id":73},"corner":{"$":"point","x":714.000001,"y":502.000001,"$id":74},"$id":72},"selector":"reportListItem","spec":"item %idx of %l","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":{"1":1,"last":"last","any":"any","$id":77,"$":"object"},"text":"any","isReadOnly":false,"$id":76},"1":{"$":"block","blockType":"r","parent":{"$ref":70},"color":{"$":"color","a":1,"r":243,"g":118,"b":29,"$id":79},"bounds":{"$":"rectangle","origin":{"$":"point","x":669.000002,"y":485.000003,"$id":81},"corner":{"$":"point","x":707.000002,"y":500.000003,"$id":82},"$id":80},"selector":"reportGetVar","spec":"ends","inputs":{"$":"array","length":0,"$id":83},"isPredicate":false,"$id":78},"$":"array","length":2,"$id":75},"isPredicate":false,"$id":70},"1":{"$":"multiSlot","slotSpec":"%s","labelText":"with inputs","min":0,"elementSpec":null,"inputs":{"$":"array","length":0,"$id":85},"$id":84},"$":"array","length":2,"$id":69},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":64},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":505,"$id":88},"corner":{"$":"point","x":664,"y":529,"$id":89},"$id":87},"selector":"forward","spec":"move %n steps","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"-69","isReadOnly":false,"$id":91},"$":"array","length":1,"$id":90},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":86},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":526,"$id":94},"corner":{"$":"point","x":666,"y":550,"$id":95},"$id":93},"selector":"turn","spec":"turn %n degrees","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"90","isReadOnly":false,"$id":97},"$":"array","length":1,"$id":96},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":92},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":547,"$id":100},"corner":{"$":"point","x":661,"y":571,"$id":101},"$id":99},"selector":"forward","spec":"move %n steps","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"69","isReadOnly":false,"$id":103},"$":"array","length":1,"$id":102},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":98},"color":{"$ref":65},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":568,"$id":106},"corner":{"$":"point","x":734,"y":597,"$id":107},"$id":105},"selector":"doRun","spec":"run %cmd %inputs","inputs":{"0":{"$":"block","blockType":"r","parent":{"$ref":104},"color":{"$ref":71},"bounds":{"$":"rectangle","origin":{"$":"point","x":584.000001,"y":572.000001,"$id":111},"corner":{"$":"point","x":714.000001,"y":591.000001,"$id":112},"$id":110},"selector":"reportListItem","spec":"item %idx of %l","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":{"$ref":77},"text":"any","isReadOnly":false,"$id":114},"1":{"$":"block","blockType":"r","parent":{"$ref":109},"color":{"$ref":79},"bounds":{"$":"rectangle","origin":{"$":"point","x":669.000002,"y":574.000003,"$id":117},"corner":{"$":"point","x":707.000002,"y":589.000003,"$id":118},"$id":116},"selector":"reportGetVar","spec":"ends","inputs":{"$":"array","length":0,"$id":119},"isPredicate":false,"$id":115},"$":"array","length":2,"$id":113},"isPredicate":false,"$id":109},"1":{"$":"multiSlot","slotSpec":"%s","labelText":"with inputs","min":0,"elementSpec":null,"inputs":{"$":"array","length":0,"$id":121},"$id":120},"$":"array","length":2,"$id":108},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":104},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":594,"$id":124},"corner":{"$":"point","x":664,"y":618,"$id":125},"$id":123},"selector":"forward","spec":"move %n steps","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"-69","isReadOnly":false,"$id":127},"$":"array","length":1,"$id":126},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":122},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":615,"$id":130},"corner":{"$":"point","x":669,"y":639,"$id":131},"$id":129},"selector":"turn","spec":"turn %n degrees","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"-45","isReadOnly":false,"$id":133},"$":"array","length":1,"$id":132},"nextBlock":null,"$id":128},"$id":122},"$id":104},"$id":98},"$id":92},"$id":86},"$id":64},"$id":58},"$id":52},"inputs":{"$":"array","length":0,"$id":134},"isLambda":false,"outerContext":{"$":"context","emptySlots":0,"expression":null,"inputs":{"$":"array","length":0,"$id":136},"isLambda":false,"outerContext":null,"parentContext":null,"pc":0,"receiver":{"$ref":6},"startTime":null,"variables":{"$":"varFrame","vars":{"$id":138,"$":"object"},"parent":{"$":"varFrame","vars":{"ends":{"$":"list","contents":{"0":{"$":"context","emptySlots":0,"expression":{"$":"block","blockType":"c-","parent":null,"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":373.000003,"y":238.000005,"$id":146},"corner":{"$":"point","x":413.000003,"y":259.000005,"$id":147},"$id":145},"selector":"evaluateCustomBlock","spec":"hex","inputs":{"$":"array","length":0,"$id":148},"nextBlock":null,"definition":{"$":"customBlockDefinition","category":null,"declarations":{"$id":150,"$":"object"},"isGlobal":false,"spec":"hex","type":"command","body":{"$":"context","emptySlots":0,"expression":{"$":"block","blockType":"-","parent":null,"color":{"$ref":65},"bounds":{"$":"rectangle","origin":{"$":"point","x":731,"y":440,"$id":154},"corner":{"$":"point","x":801,"y":515,"$id":155},"$id":153},"selector":"doRepeat","spec":"repeat %n %c","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"6","isReadOnly":false,"$id":157},"1":{"$":"cSlot","parent":{"$ref":152},"nestedBlock":{"$":"block","blockType":"-","parent":{"$ref":158},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":738.000001,"y":461.000001,"$id":161},"corner":{"$":"point","x":835.000001,"y":485.000001,"$id":162},"$id":160},"selector":"forward","spec":"move %n steps","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"7","isReadOnly":false,"$id":164},"$":"array","length":1,"$id":163},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":159},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":738.000001,"y":482.000001,"$id":167},"corner":{"$":"point","x":846.000001,"y":506.000001,"$id":168},"$id":166},"selector":"turn","spec":"turn %n degrees","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"60","isReadOnly":false,"$id":170},"$":"array","length":1,"$id":169},"nextBlock":null,"$id":165},"$id":159},"$id":158},"$":"array","length":2,"$id":156},"nextBlock":null,"$id":152},"inputs":{"$":"array","length":0,"$id":171},"isLambda":false,"outerContext":{"$":"context","emptySlots":0,"expression":null,"inputs":{"$":"array","length":0,"$id":173},"isLambda":false,"outerContext":null,"parentContext":null,"pc":0,"receiver":{"$ref":6},"startTime":null,"variables":{"$":"varFrame","vars":{"$id":175,"$":"object"},"parent":{"$ref":139},"$id":174},"$id":172},"parentContext":null,"pc":0,"receiver":{"$ref":6},"startTime":null,"variables":{"$":"varFrame","vars":{"$id":177,"$":"object"},"parent":null,"$id":176},"$id":151},"$id":149},"isPrototype":false,"$id":144},"inputs":{"$":"array","length":0,"$id":178},"isLambda":false,"outerContext":{"$":"context","emptySlots":0,"expression":null,"inputs":{"$":"array","length":0,"$id":180},"isLambda":false,"outerContext":null,"parentContext":null,"pc":0,"receiver":{"$ref":6},"startTime":null,"variables":{"$":"varFrame","vars":{"$id":182,"$":"object"},"parent":{"$ref":139},"$id":181},"$id":179},"parentContext":null,"pc":0,"receiver":{"$ref":6},"startTime":null,"variables":{"$":"varFrame","vars":{"$id":184,"$":"object"},"parent":{"$ref":181},"$id":183},"$id":143},"1":{"$":"context","emptySlots":0,"expression":{"$":"block","blockType":"c-","parent":null,"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":450.000004,"y":238.000005,"$id":188},"corner":{"$":"point","x":498.000004,"y":259.000005,"$id":189},"$id":187},"selector":"evaluateCustomBlock","spec":"square","inputs":{"$":"array","length":0,"$id":190},"nextBlock":null,"definition":{"$":"customBlockDefinition","category":null,"declarations":{"$id":192,"$":"object"},"isGlobal":false,"spec":"square","type":"command","body":{"$":"context","emptySlots":0,"expression":{"$":"block","blockType":"-","parent":null,"color":{"$ref":65},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":442,"$id":196},"corner":{"$":"point","x":628,"y":517,"$id":197},"$id":195},"selector":"doRepeat","spec":"repeat %n %c","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"4","isReadOnly":false,"$id":199},"1":{"$":"cSlot","parent":{"$ref":194},"nestedBlock":{"$":"block","blockType":"-","parent":{"$ref":200},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":565.000001,"y":463.000001,"$id":203},"corner":{"$":"point","x":668.000001,"y":487.000001,"$id":204},"$id":202},"selector":"forward","spec":"move %n steps","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"10","isReadOnly":false,"$id":206},"$":"array","length":1,"$id":205},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":201},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":565.000001,"y":484.000001,"$id":209},"corner":{"$":"point","x":673.000001,"y":508.000001,"$id":210},"$id":208},"selector":"turn","spec":"turn %n degrees","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"90","isReadOnly":false,"$id":212},"$":"array","length":1,"$id":211},"nextBlock":null,"$id":207},"$id":201},"$id":200},"$":"array","length":2,"$id":198},"nextBlock":null,"$id":194},"inputs":{"$":"array","length":0,"$id":213},"isLambda":false,"outerContext":{"$":"context","emptySlots":0,"expression":null,"inputs":{"$":"array","length":0,"$id":215},"isLambda":false,"outerContext":null,"parentContext":null,"pc":0,"receiver":{"$ref":6},"startTime":null,"variables":{"$":"varFrame","vars":{"$id":217,"$":"object"},"parent":{"$ref":139},"$id":216},"$id":214},"parentContext":null,"pc":0,"receiver":{"$ref":6},"startTime":null,"variables":{"$":"varFrame","vars":{"$id":219,"$":"object"},"parent":null,"$id":218},"$id":193},"$id":191},"isPrototype":false,"$id":186},"inputs":{"$":"array","length":0,"$id":220},"isLambda":false,"outerContext":{"$ref":179},"parentContext":null,"pc":0,"startTime":null,"variables":{"$":"varFrame","vars":{"$id":222,"$":"object"},"parent":{"$ref":181},"$id":221},"$id":185},"2":{"$":"context","emptySlots":0,"expression":{"$":"block","blockType":"c-","parent":null,"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":527.000005,"y":238.000005,"$id":226},"corner":{"$":"point","x":567.000005,"y":259.000005,"$id":227},"$id":225},"selector":"evaluateCustomBlock","spec":"star","inputs":{"$":"array","length":0,"$id":228},"nextBlock":null,"definition":{"$":"customBlockDefinition","category":null,"declarations":{"$id":230,"$":"object"},"isGlobal":false,"spec":"star","type":"command","body":{"$":"context","emptySlots":0,"expression":{"$":"block","blockType":"-","parent":null,"color":{"$ref":65},"bounds":{"$":"rectangle","origin":{"$":"point","x":558,"y":442,"$id":234},"corner":{"$":"point","x":628,"y":517,"$id":235},"$id":233},"selector":"doRepeat","spec":"repeat %n %c","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"5","isReadOnly":false,"$id":237},"1":{"$":"cSlot","parent":{"$ref":232},"nestedBlock":{"$":"block","blockType":"-","parent":{"$ref":238},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":565.000001,"y":463.000001,"$id":241},"corner":{"$":"point","x":668.000001,"y":487.000001,"$id":242},"$id":240},"selector":"forward","spec":"move %n steps","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"12","isReadOnly":false,"$id":244},"$":"array","length":1,"$id":243},"nextBlock":{"$":"block","blockType":"-","parent":{"$ref":239},"color":{"$ref":18},"bounds":{"$":"rectangle","origin":{"$":"point","x":565.000001,"y":484.000001,"$id":247},"corner":{"$":"point","x":679.000001,"y":508.000001,"$id":248},"$id":246},"selector":"turn","spec":"turn %n degrees","inputs":{"0":{"$":"inputSlot","isNumeric":true,"choices":null,"text":"144","isReadOnly":false,"$id":250},"$":"array","length":1,"$id":249},"nextBlock":null,"$id":245},"$id":239},"$id":238},"$":"array","length":2,"$id":236},"nextBlock":null,"$id":232},"inputs":{"$":"array","length":0,"$id":251},"isLambda":false,"outerContext":{"$":"context","emptySlots":0,"expression":null,"inputs":{"$":"array","length":0,"$id":253},"isLambda":false,"outerContext":null,"parentContext":null,"pc":0,"receiver":{"$ref":6},"startTime":null,"variables":{"$":"varFrame","vars":{"$id":255,"$":"object"},"parent":{"$ref":139},"$id":254},"$id":252},"parentContext":null,"pc":0,"receiver":{"$ref":6},"startTime":null,"variables":{"$":"varFrame","vars":{"$id":257,"$":"object"},"parent":null,"$id":256},"$id":231},"$id":229},"isPrototype":false,"$id":224},"inputs":{"$":"array","length":0,"$id":258},"isLambda":false,"outerContext":{"$ref":179},"parentContext":null,"pc":0,"startTime":null,"variables":{"$":"varFrame","vars":{"$id":260,"$":"object"},"parent":{"$ref":181},"$id":259},"$id":223},"3":{"$":"context","emptySlots":0,"expression":{"$":"block","blockType":"c-","parent":null,"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":604.000006,"y":238.000005,"$id":264},"corner":{"$":"point","x":644.000006,"y":259.000005,"$id":265},"$id":263},"selector":"evaluateCustomBlock","spec":"vee","inputs":{"$":"array","length":0,"$id":266},"nextBlock":null,"definition":{"$ref":49},"isPrototype":false,"$id":262},"inputs":{"$":"array","length":0,"$id":267},"isLambda":false,"outerContext":{"$ref":179},"parentContext":null,"pc":0,"startTime":null,"variables":{"$":"varFrame","vars":{"$id":269,"$":"object"},"parent":{"$ref":181},"$id":268},"$id":261},"4":{"$":"context","emptySlots":0,"expression":{"$":"block","blockType":"c-","parent":null,"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":681.000007,"y":238.000005,"$id":273},"corner":{"$":"point","x":721.000007,"y":259.000005,"$id":274},"$id":272},"selector":"evaluateCustomBlock","spec":"vee","inputs":{"$":"array","length":0,"$id":275},"nextBlock":null,"definition":{"$ref":49},"isPrototype":false,"$id":271},"inputs":{"$":"array","length":0,"$id":276},"isLambda":false,"outerContext":{"$ref":179},"parentContext":null,"pc":0,"startTime":null,"variables":{"$":"varFrame","vars":{"$id":278,"$":"object"},"parent":{"$ref":181},"$id":277},"$id":270},"$":"array","length":5,"$id":142},"$id":141},"$id":140,"$":"object"},"parent":null,"$id":139},"$id":137},"$id":135},"parentContext":null,"pc":0,"receiver":{"$ref":6},"startTime":null,"variables":{"$":"varFrame","vars":{"$id":280,"$":"object"},"parent":null,"$id":279},"$id":51},"$id":49},"isPrototype":false,"$id":43},"$id":36},"$id":31},"$id":25},"$id":17},"1":{"$":"block","blockType":"-","parent":{"$ref":12},"color":{"$ref":79},"bounds":{"$":"rectangle","origin":{"$":"point","x":229,"y":336,"$id":283},"corner":{"$":"point","x":674,"y":407,"$id":284},"$id":282},"selector":"doSetVar","spec":"set %var to %s","inputs":{"0":{"$":"inputSlot","isNumeric":false,"choices":"getVarNamesDict","text":"ends","isReadOnly":true,"$id":286},"1":{"$":"block","blockType":"r","parent":{"$ref":281},"color":{"$ref":71},"bounds":{"$":"rectangle","origin":{"$":"point","x":235.000001,"y":354.000001,"$id":289},"corner":{"$":"point","x":667.000001,"y":401.000001,"$id":290},"$id":288},"selector":"reportNewList","spec":"list %mult%s","inputs":{"0":{"$":"multiSlot","slotSpec":"%s","labelText":"","min":0,"elementSpec":null,"inputs":{"0":{"$":"block","blockType":"r","parent":{"$ref":292},"color":{"$":"color","a":1,"r":98,"g":194,"b":19,"$id":295},"bounds":{"$":"rectangle","origin":{"$":"point","x":260.000002,"y":356.000003,"$id":297},"corner":{"$":"point","x":334.000002,"y":399.000003,"$id":298},"$id":296},"selector":"reportScript","spec":"the script %parms %c","inputs":{"0":{"$":"multiSlot","slotSpec":"%t","labelText":"Input Names:","min":0,"elementSpec":"%parms","inputs":{"$":"array","length":0,"$id":301},"$id":300},"1":{"$":"cSlot","parent":{"$ref":294},"nestedBlock":{"$":"block","blockType":"c-","parent":{"$ref":302},"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":267.000003,"y":372.000005,"$id":305},"corner":{"$":"point","x":307.000003,"y":393.000005,"$id":306},"$id":304},"selector":"evaluateCustomBlock","spec":"hex","inputs":{"$":"array","length":0,"$id":307},"nextBlock":null,"definition":{"$ref":149},"isPrototype":false,"$id":303},"$id":302},"$":"array","length":2,"$id":299},"isPredicate":false,"$id":294},"1":{"$":"block","blockType":"r","parent":{"$ref":292},"color":{"$ref":295},"bounds":{"$":"rectangle","origin":{"$":"point","x":337.000003,"y":356.000003,"$id":310},"corner":{"$":"point","x":411.000003,"y":399.000003,"$id":311},"$id":309},"selector":"reportScript","spec":"the script %parms %c","inputs":{"0":{"$":"multiSlot","slotSpec":"%t","labelText":"Input Names:","min":0,"elementSpec":"%parms","inputs":{"$":"array","length":0,"$id":314},"$id":313},"1":{"$":"cSlot","parent":{"$ref":308},"nestedBlock":{"$":"block","blockType":"c-","parent":{"$ref":315},"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":344.000004,"y":372.000005,"$id":318},"corner":{"$":"point","x":392.000004,"y":393.000005,"$id":319},"$id":317},"selector":"evaluateCustomBlock","spec":"square","inputs":{"$":"array","length":0,"$id":320},"nextBlock":null,"definition":{"$ref":191},"isPrototype":false,"$id":316},"$id":315},"$":"array","length":2,"$id":312},"isPredicate":false,"$id":308},"2":{"$":"block","blockType":"r","parent":{"$ref":292},"color":{"$ref":295},"bounds":{"$":"rectangle","origin":{"$":"point","x":414.000004,"y":356.000003,"$id":323},"corner":{"$":"point","x":488.000004,"y":399.000003,"$id":324},"$id":322},"selector":"reportScript","spec":"the script %parms %c","inputs":{"0":{"$":"multiSlot","slotSpec":"%t","labelText":"Input Names:","min":0,"elementSpec":"%parms","inputs":{"$":"array","length":0,"$id":327},"$id":326},"1":{"$":"cSlot","parent":{"$ref":321},"nestedBlock":{"$":"block","blockType":"c-","parent":{"$ref":328},"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":421.000005,"y":372.000005,"$id":331},"corner":{"$":"point","x":461.000005,"y":393.000005,"$id":332},"$id":330},"selector":"evaluateCustomBlock","spec":"star","inputs":{"$":"array","length":0,"$id":333},"nextBlock":null,"definition":{"$ref":229},"isPrototype":false,"$id":329},"$id":328},"$":"array","length":2,"$id":325},"isPredicate":false,"$id":321},"3":{"$":"block","blockType":"r","parent":{"$ref":292},"color":{"$":"color","a":1,"r":98,"g":194,"b":19,"$id":335},"bounds":{"$":"rectangle","origin":{"$":"point","x":491.000005,"y":356.000003,"$id":337},"corner":{"$":"point","x":565.000005,"y":399.000003,"$id":338},"$id":336},"selector":"reportScript","spec":"the script %parms %c","inputs":{"0":{"$":"multiSlot","slotSpec":"%t","labelText":"Input Names:","min":0,"elementSpec":"%parms","inputs":{"$":"array","length":0,"$id":341},"$id":340},"1":{"$":"cSlot","parent":{"$ref":334},"nestedBlock":{"$":"block","blockType":"c-","parent":{"$ref":342},"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":498.000006,"y":372.000005,"$id":345},"corner":{"$":"point","x":538.000006,"y":393.000005,"$id":346},"$id":344},"selector":"evaluateCustomBlock","spec":"vee","inputs":{"$":"array","length":0,"$id":347},"nextBlock":null,"definition":{"$ref":49},"isPrototype":false,"$id":343},"$id":342},"$":"array","length":2,"$id":339},"isPredicate":false,"$id":334},"4":{"$":"block","blockType":"r","parent":{"$ref":292},"color":{"$ref":335},"bounds":{"$":"rectangle","origin":{"$":"point","x":568.000006,"y":356.000003,"$id":350},"corner":{"$":"point","x":642.000006,"y":399.000003,"$id":351},"$id":349},"selector":"reportScript","spec":"the script %parms %c","inputs":{"0":{"$":"multiSlot","slotSpec":"%t","labelText":"Input Names:","min":0,"elementSpec":"%parms","inputs":{"$":"array","length":0,"$id":354},"$id":353},"1":{"$":"cSlot","parent":{"$ref":348},"nestedBlock":{"$":"block","blockType":"c-","parent":{"$ref":355},"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":575.000007,"y":372.000005,"$id":358},"corner":{"$":"point","x":615.000007,"y":393.000005,"$id":359},"$id":357},"selector":"evaluateCustomBlock","spec":"vee","inputs":{"$":"array","length":0,"$id":360},"nextBlock":null,"definition":{"$ref":49},"isPrototype":false,"$id":356},"$id":355},"$":"array","length":2,"$id":352},"isPredicate":false,"$id":348},"$":"array","length":5,"$id":293},"$id":292},"$":"array","length":1,"$id":291},"isPredicate":false,"$id":287},"$":"array","length":2,"$id":285},"nextBlock":null,"$id":281},"2":{"$":"block","blockType":"-","parent":{"$ref":12},"color":{"$ref":79},"bounds":{"$":"rectangle","origin":{"$":"point","x":237,"y":206,"$id":363},"corner":{"$":"point","x":600,"y":263,"$id":364},"$id":362},"selector":"doSetVar","spec":"set %var to %s","inputs":{"0":{"$":"inputSlot","isNumeric":false,"choices":"getVarNamesDict","text":"ends","isReadOnly":true,"$id":366},"1":{"$":"block","blockType":"r","parent":{"$ref":361},"color":{"$ref":71},"bounds":{"$":"rectangle","origin":{"$":"point","x":315.000001,"y":210.000001,"$id":369},"corner":{"$":"point","x":593.000001,"y":257.000001,"$id":370},"$id":368},"selector":"reportNewList","spec":"list %mult%s","inputs":{"0":{"$":"multiSlot","slotSpec":"%s","labelText":"","min":0,"elementSpec":null,"inputs":{"0":{"$":"block","blockType":"r","parent":{"$ref":372},"color":{"$ref":295},"bounds":{"$":"rectangle","origin":{"$":"point","x":340.000002,"y":212.000003,"$id":376},"corner":{"$":"point","x":414.000002,"y":255.000003,"$id":377},"$id":375},"selector":"reportScript","spec":"the script %parms %c","inputs":{"0":{"$":"multiSlot","slotSpec":"%t","labelText":"Input Names:","min":0,"elementSpec":"%parms","inputs":{"$":"array","length":0,"$id":380},"$id":379},"1":{"$":"cSlot","parent":{"$ref":374},"nestedBlock":{"$":"block","blockType":"c-","parent":{"$ref":381},"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":347.000003,"y":228.000005,"$id":384},"corner":{"$":"point","x":387.000003,"y":249.000005,"$id":385},"$id":383},"selector":"evaluateCustomBlock","spec":"hex","inputs":{"$":"array","length":0,"$id":386},"nextBlock":null,"definition":{"$ref":149},"isPrototype":false,"$id":382},"$id":381},"$":"array","length":2,"$id":378},"isPredicate":false,"$id":374},"1":{"$":"block","blockType":"r","parent":{"$ref":372},"color":{"$ref":295},"bounds":{"$":"rectangle","origin":{"$":"point","x":417.000003,"y":212.000003,"$id":389},"corner":{"$":"point","x":491.000003,"y":255.000003,"$id":390},"$id":388},"selector":"reportScript","spec":"the script %parms %c","inputs":{"0":{"$":"multiSlot","slotSpec":"%t","labelText":"Input Names:","min":0,"elementSpec":"%parms","inputs":{"$":"array","length":0,"$id":393},"$id":392},"1":{"$":"cSlot","parent":{"$ref":387},"nestedBlock":{"$":"block","blockType":"c-","parent":{"$ref":394},"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":424.000004,"y":228.000005,"$id":397},"corner":{"$":"point","x":472.000004,"y":249.000005,"$id":398},"$id":396},"selector":"evaluateCustomBlock","spec":"square","inputs":{"$":"array","length":0,"$id":399},"nextBlock":null,"definition":{"$ref":191},"isPrototype":false,"$id":395},"$id":394},"$":"array","length":2,"$id":391},"isPredicate":false,"$id":387},"2":{"$":"block","blockType":"r","parent":{"$ref":372},"color":{"$ref":295},"bounds":{"$":"rectangle","origin":{"$":"point","x":494.000004,"y":212.000003,"$id":402},"corner":{"$":"point","x":568.000004,"y":255.000003,"$id":403},"$id":401},"selector":"reportScript","spec":"the script %parms %c","inputs":{"0":{"$":"multiSlot","slotSpec":"%t","labelText":"Input Names:","min":0,"elementSpec":"%parms","inputs":{"$":"array","length":0,"$id":406},"$id":405},"1":{"$":"cSlot","parent":{"$ref":400},"nestedBlock":{"$":"block","blockType":"c-","parent":{"$ref":407},"color":{"$ref":44},"bounds":{"$":"rectangle","origin":{"$":"point","x":501.000005,"y":228.000005,"$id":410},"corner":{"$":"point","x":541.000005,"y":249.000005,"$id":411},"$id":409},"selector":"evaluateCustomBlock","spec":"star","inputs":{"$":"array","length":0,"$id":412},"nextBlock":null,"definition":{"$ref":229},"isPrototype":false,"$id":408},"$id":407},"$":"array","length":2,"$id":404},"isPredicate":false,"$id":400},"$":"array","length":3,"$id":373},"$id":372},"$":"array","length":1,"$id":371},"isPredicate":false,"$id":367},"$":"array","length":2,"$id":365},"nextBlock":null,"$id":361},"$":"array","length":3,"$id":16},"$id":12},"variables":{"$ref":139},"customBlocks":{"0":{"$ref":49},"1":{"$ref":149},"2":{"$ref":191},"3":{"$ref":229},"$":"array","length":4,"$id":413},"$id":6},"1":{"$":"watcher","parent":{"$ref":1},"label":"ends","color":{"$ref":79},"target":{"$ref":139},"getter":"ends","isVisible":true,"bounds":{"$":"rectangle","origin":{"$":"point","x":714,"y":19,"$id":416},"corner":{"$":"point","x":815,"y":110.000002,"$id":417},"$id":415},"$id":414},"$":"array","length":2,"$id":5},"scripts":{"$":"scripts","bounds":{"$":"rectangle","origin":{"$":"point","x":0,"y":0,"$id":420},"corner":{"$":"point","x":50,"y":40,"$id":421},"$id":419},"owner":{"$ref":1},"children":{"$":"array","length":0,"$id":422},"$id":418},"variables":{"$":"varFrame","vars":{"$id":424,"$":"object"},"parent":null,"$id":423},"$id":1}
After (12.57% in size):
<project name="vee" version="1"><notes></notes><stage costume="0" id="0"><variables></variables><media></media><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" x="-4.547473508864641e-13" y="-120.00000000000006" heading="0" id="4"><variables><variable name="ends"><list id="6"><item><context id="7"><inputs></inputs><variables></variables><script><custom-block s="hex" scope="Sprite"></custom-block></script><receiver></receiver><context id="11"><inputs></inputs><variables></variables><receiver></receiver></context></context></item><item><context id="13"><inputs></inputs><variables></variables><script><custom-block s="square" scope="Sprite"></custom-block></script><receiver></receiver></context></item><item><context id="17"><inputs></inputs><variables></variables><script><custom-block s="star" scope="Sprite"></custom-block></script><receiver></receiver></context></item></list></variable></variables><media></media><blocks><block-definition s="vee" type="command" category="motion"><inputs></inputs><script><block s="turn"><l>-45</l></block><block s="forward"><l>69</l></block><block s="doRun"><block s="reportListItem"><l>any</l><block var="ends"/></block><list></list></block><block s="forward"><l>-69</l></block><block s="turn"><l>90</l></block><block s="forward"><l>69</l></block><block s="doRun"><block s="reportListItem"><l>any</l><block var="ends"/></block><list></list></block><block s="forward"><l>-69</l></block><block s="turn"><l>-45</l></block></script></block-definition><block-definition s="hex" type="command" category="motion"><inputs></inputs><script><block s="doRepeat"><l>6</l><script><block s="forward"><l>7</l></block><block s="turn"><l>60</l></block></script></block></script></block-definition><block-definition s="star" type="command" category="motion"><inputs></inputs><script><block s="doRepeat"><l>5</l><script><block s="forward"><l>12</l></block><block s="turn"><l>144</l></block></script></block></script></block-definition><block-definition s="square" type="command" category="motion"><inputs></inputs><script><block s="doRepeat"><l>4</l><script><block s="forward"><l>10</l></block><block s="turn"><l>90</l></block></script></block></script></block-definition></blocks><scripts><script x="20" y="20"><block s="up"></block><block s="gotoXY"><l>0</l><l>-120</l></block><block s="clear"></block><block s="down"></block><block s="setHeading"><l>0</l></block><custom-block s="vee" scope="Sprite"></custom-block></script><script x="20" y="152"><block s="doSetVar"><l>ends</l><block s="reportNewList"><list><block s="reportScript"><list></list><script><custom-block s="hex" scope="Sprite"></custom-block></script></block><block s="reportScript"><list></list><script><custom-block s="square" scope="Sprite"></custom-block></script></block><block s="reportScript"><list></list><script><custom-block s="star" scope="Sprite"></custom-block></script></block></list></block></block></script><script x="20" y="224"><block s="doSetVar"><l>ends</l><block s="reportNewList"><list><block s="reportScript"><list></list><script><custom-block s="hex" scope="Sprite"></custom-block></script></block><block s="reportScript"><list></list><script><custom-block s="square" scope="Sprite"></custom-block></script></block><block s="reportScript"><list></list><script><custom-block s="star" scope="Sprite"></custom-block></script></block><block s="reportScript"><list></list><script><custom-block s="vee" scope="Sprite"></custom-block></script></block><block s="reportScript"><list></list><script><custom-block s="vee" scope="Sprite"></custom-block></script></block></list></block></block></script></scripts></sprite><watcher scope="Sprite" var="ends" x="10" y="10" color="243,118,29"/></sprites></stage></project>
Information about the file format
The top-level structure of a snap project is:
<project name="Project Name" version="Serializer Version">
<notes>Project Notes</notes>
<thumbnail>Base64-Encoded Image*</thumbnail>
<stage>…</stage>
</project>
* The thumbnail is not saved with the project because there is currently no use for it and it substantially increases the file size
The stage contains information about the stage itself and its sprites & watchers.
<stage costume="Costume Index" id="ID">
<variables>Variable Declarations</variables>
<media>Media</media>
<blocks>Block Definitions</blocks>
<scripts>Scripts</scripts>
<sprites>
<sprite name="Sprite Name" x="X*" y="Y*" heading="Direction**" id="ID">
<variables>Variable Declarations</variables>
<media>Media</media>
<blocks>Sprite-Local Block Definitions</blocks>
<scripts>Scripts</scripts>
</sprite>
</sprites>
</stage>
* Snap! coordinates
** Degrees
Variable Declarations contains of zero or more variable declarations.
<variable name="Variable Name">Value</variable>
Media contains of zero or more costume or sound declarations (… indicates zero or more of any of the preceding items).
<costume name="Costume Name" center-x="Rotation Center X" center-y="Rotation Center Y">
<text x="X" y="Y" family="Font Family Name" size="Font Size">Text Contents</text>
…
<image>Base-64 Encoded Image</image>
</costume>
<sound name="Sound Name">Base-64 Encoded Sound</sound>
Block Definitions contains zero or more block definitions.
<block-definition s="Block Spec*" type="Block Type**" category="Category>
<inputs>
<input type="Argument Spec">Default Value</input>
…
</inputs>
<script>Body</script>
</block-definition>
* Uses input names in single-quotes (e.g. set %'variable' to %'value')
** One of [command, reporter, predicate]
Scripts contains zero or more scripts. Only blocks' selectors are stored; the rest of the information (i.e., type, category/color, and spec) is looked up in an object.
<script [x="X Position" y="Y Position"]>
<block s="Block Selector">
or
<custom-block s="Block Spec" [scope="Sprite Name"*]>
<l>Literal Argument Value</l>
<script>Script</script>
<list>
<item>Value</item>
…
</list>
…
</block> (or </custom-block>)
…
</script>
* If not present, indicates a global block
A Value is one of the following:
<ref id="ID" /> (Reference to another value)
<l>Literal String or Number</l>
<list id="ID" [linked="linked"]>
<item>Value</item>
…
</list>
<context id="ID">
[<inputs>
<input>Input Name</input>
…
</inputs>]
<script>Expression</script>
<receiver>Receiver (always a <ref> to a sprite or the stage)</receiver>
<variables>Variables</variables>
[<context>Outer Context</context>]
</context>
Offline
Awesome! I think XML suits Snap! perfectly!
Offline
nXIII wrote:
Obligatory sample project in the new format:
When I click on that link I get a blocked XSS complaint from NoScript.
If I say to allow it anyway, the page still never actually loads. (FF, Linux)
I'll try it again at home...
Offline
bharvey wrote:
nXIII wrote:
Obligatory sample project in the new format:
When I click on that link I get a blocked XSS complaint from NoScript.
If I say to allow it anyway, the page still never actually loads. (FF, Linux)
I'll try it again at home...
Not loading for me either with Chromium on Windows
Offline
veggieman001 wrote:
bharvey wrote:
nXIII wrote:
Obligatory sample project in the new format:
When I click on that link I get a blocked XSS complaint from NoScript.
If I say to allow it anyway, the page still never actually loads. (FF, Linux)
I'll try it again at home...Not loading for me either with Chromium on Windows
Sorry, the virtual keyboard doesn't completely work yet. I disabled it for now, so everything should work again.
Offline
Ooh, xml project saving! Very nice nXIII! One of the few markups that are actually readable!
Offline
nXIII wrote:
veggieman001 wrote:
bharvey wrote:
When I click on that link I get a blocked XSS complaint from NoScript.
If I say to allow it anyway, the page still never actually loads. (FF, Linux)
I'll try it again at home...Not loading for me either with Chromium on Windows
Sorry, the virtual keyboard doesn't completely work yet. I disabled it for now, so everything should work again.
Yep, it's working! Awesome!
Offline
nXIII wrote:
I disabled it for now, so everything should work again.
Works great in Safari. In FF I still get an XSS warning from NoScript, and even if I allow it, I see no project. And if I click on the Variables palette thingy, instead of the palette I get a light grey rectangle.
Is the XSS something you're doing on purpose? I'm not the only one who uses NoScript, and Snap! has to work for us.
Offline
bharvey wrote:
nXIII wrote:
I disabled it for now, so everything should work again.
Works great in Safari. In FF I still get an XSS warning from NoScript, and even if I allow it, I see no project. And if I click on the Variables palette thingy, instead of the palette I get a light grey rectangle.
Is the XSS something you're doing on purpose? I'm not the only one who uses NoScript, and Snap! has to work for us.
It may be because I'm using the chirp.scratchr.org js files rather than local copies; they're on different domains. It runs fine for me on normal FF Mac (no extensions).
Offline
bharvey wrote:
TRocket wrote:
run w/ continuation is broken
Could you give an example that doesn't work? Tnx.
it's working again now it seems that inserts aren't properly rendered some of the time.
if you
alert (list[foo][bar])it says
Last edited by TRocket (2012-02-09 02:19:54)
Offline
xly wrote:
@ Jens
Strangely enough, I can't make work, as said above, a simple block ABS val with IF Then + REPORT, I get a redfreeze either with Firefox or Chrome ! ?
Thanks for the report, Xavier. I introduced this bug with tail-call-optimization. It's going to be fixed in tonight's updated version.
Last edited by Jens (2012-02-09 07:24:58)
Offline
bharvey wrote:
nXIII wrote:
normal FF Mac (no extensions).
Man, how can you guys be so brave and/or foolhardy as to run a browser on your computer without NoScript?
I'm on Windows with chrome and I never use NoScript. Not sure if I can even install it on my school computer, I'm at school right now everyone gets a netbook at this school.
Offline
bharvey wrote:
scimonster wrote:
Can you make Alonzo the default sprite already?
I did see the smiley, but... (1) It's almost as hard to have one bitmap costume as to have a plethora of them; (2) with one sprite, people are mostly doing Logo-style drawing pictures, not animations, and so it's more useful to have a pointer than a personality.
@No. 2, great point.
@nXIII, I LOVE the GUI on your version.
Last edited by MathWizz (2012-02-10 17:54:22)
Offline