GithubHelp home page GithubHelp logo

scratchx's Introduction

ScratchX is no longer supported

ScratchX is now archived and no longer supported because Adobe Flash has reached end of life. If you're interested in developing extensions for Scratch, please visit the Scratch-GUI repo as a starting point for building a local version of the Scratch editor. It can be linked to your local version of Scratch-VM, where you can create your own extensions.

ScratchX

Website for experimental Scratch extensions

scratchx's People

Contributors

colbygk avatar cwillisf avatar ericrosenbaum avatar khanning avatar rschamp avatar sayamindu avatar sclements avatar technoboy10 avatar thisandagain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scratchx's Issues

Arduino disconnected

Edit:
It seems Chrome dropped NPAPI support. The Arduino Scratch extension needs to support PPAPI in order to work on future versions of Chrome.


ScratchX won't connect with the Arduino on Windows 8.1 / Chrome 45 (Yellow connection icon in ScratchX), even with the 'previous' plugin version as mentioned in the docs. On the same configuration, Leap Motion does work with ScratchX.

The browser console keeps mentioning: "Attempting connection with COM8".
The board's LED's blink in a relatively complex but repeated pattern which seems to be:

L - Twice
RX - Once
L - Twice
L - Once
RX - Once
L - Three times
TX - Once (short)
RX - Once (short)
TX and RX simultaniously - Twice

I'm not sure if the above is of much use, but let me know if you need additional information.

Move extension-docs to scratchx wiki

  • create scratchx wiki
  • move extension-docs to scratchx wiki, add a page for example extensions (encourage others to add theirs here)
  • link to new wiki from 'developer documentation' on the homepage

Scratch Browser Plugin crashes on Windows 8.1

The plugin crashes while trying to load a project that uses the Scratch Browser Plugin on Windows 8.1

Chrome 43: The editor fails to load and instead displays the "Aw Snap!" error message
Firefox 38.0.1: The editor fails to load and TypeError: Scratch.FlashApp.$ASobj is undefined is output to the console.

If I disable the plugin, the ScratchX editor loads fine.

Extension blocks are not loaded automatically when opening an sbx from an sb2

Procedure to reproduce:

  1. Create an sb2 with extensions imported
  2. Import as an sbx on ScratchX
  3. Import the extension on ScratchX (all works well)
  4. Save as sbx
  5. On a new tab, open the sbx
  6. All extension blocks have the correct block spec, but they do not work and they do not appear in the More Blocks panel.
  7. Repeating step 3 fixes step 6, but should be automatic (bug)

Can The Sprite Library be Generated in Scratchx Running on Local Webserver?

Hi,
I am running a local version of Scratchx in rural schools w/o broadband as per issue #38 and
it is working fine, thanks! However, I'm finding the missing sprite library quite a nuisance to younger
students. Is it possible to generate the sprite library in the same manner as done in the Scratch2 offline editor? Specifically in the Scratch2/media/libs dir there is a Python script named "generate-costume-library.py" which appears to be processing all of the sprites in the media lib. Is there a way to run this process in my local web server on its local copy of the Scratch2/media/libs dir so that the sprite library renders in the local webserver version? I am willing to modify source code if necessary.

Set Github's "default branch" to `gh-pages`, delete master

It's really confusing to someone browsing the repo to just see a README and LICENSE unless they switch branches to the Github Pages branch.

To change the default branch, a project owner needs to go to the "settings" pane (under issues, pull requests, and graphs) and click on the dropdown box that says "master".

Scratch Device Plugin Crashes when stopBits is set to 1

When trying to open a serial device using this:

"device.open({ stopBits: 1, bitRate: 115200, ctsFlowControl: 0 });"

the Scratch Device Plugin crashes and reports this in the browser console:

"Error opening serial device COM23: Error: Error calling method on NPObject!"

If stopBits is set to 0, it works fine.

I am using Mozilla Firefox 40.0.3 and Scratch Device Plugin 2.1.2.1 on Windows 7.

HTTP Extension Future?

Could the FAQ be updated to also clarify what will happen to http extensions within Scratch offline/online in Nov 2015?

Thanks.

Ability to display reporter blocks that have arguments on the stage

This is a feature request.

Currently, only reporter blocks that have no arguments are able to be displayed on the stage by toggling the checkbox next to the block.

screenshot-1

This can be worked around by creating a Scratch variable to store the reporter block value, but it's not an ideal solution.

screenshot-2

Chrome: serial receive handler called twice per read

From @khanning:

I received a couple of reports that the Arduino extension isn't working properly with Chrome. After taking a look at the issue it seems like the receive handler is being called twice each time data is read.

To test this, I set up an Arduino with a simple firmware that starts at 0, increments by 1 each second, and writes the digit to the serial port. Everything behaves as expected on Firefox, each digit is received by the receive handler (0 1 2 3 4 ...). However, on Chrome each digit gets received by receive handler twice (0 0 1 1 2 2 3 3 ...). I was able to confirm this behavior on both OS X 10.9 and Windows 10 with the latest version of Chrome and the Chrome helper/device host plugin.

This would not be very disruptive to the PicoBoard, but I'm sure there are many devices and protocols which would not function in these circumstances.

Extensions not working on Microsoft Edge

When we decide which version of the device plugin to connect to, Edge is detected incorrectly and tries to use the Chrome path. This throws an exception and might be the reason that extensions (even ones that don't use hardware) are not currently working in Edge.

Text changes on ScratchX

  • For the main description on the landing page, change “electronic devices and kits” to “electronic devices and robotics”
  • For the warning dialog when you enter the editor, change to:
    Warning: The extensions on this site are experimental
    The Scratch Team is not responsible for the extensions and projects on this site. Please use caution when using these extensions. Learn more.
  • Homepage, Open an Extension File becomes 'Open an Extension Project'

Unexpected behavior from the back button

  • Open scratchx.org
  • Click on the Text to Speech extension link
  • Press back once the editor is visible

The browser goes back to the page that was open before scratchx.org. That seems unexpected.

Extension Does Not Load Automatically When Loading .sbx File

Steps to Reproduce:

  1. Navigate to this URL to load project:
    http://scratchx.org/?url=http://creativecomputerlab.com/extensions/MakeSenseControlPanelAnalog.sbx
  2. The project loads fine, however, the extension must be loaded in an extra step from:
    http://creativecomputerlab.com/extensions/MakeSenseExt-v2.js.
  3. A crosdsdomain.xml file exists at the root of the domain as per instructions in http://llk.github.io/scratch-extension-docs/#sharing-extensions:
    http://creativecomputerlab.com/crossdomain.xml

More projects which exhibit the issue can be found at:
http://creativecomputerlab.com/makesense-2.html#datamode

PicoBoard connection not reliable

From a user on Windows 7 using Firefox on the main Scratch site:

We’ve been using Firefox. Typically, we like to use Google Chrome, however after installing the PicoBoard plugin (it is a .MSI file), the PicoBoards still would not connect. So we switched over to Firefox, which seems to be working a bit better for us.

Most cases, the first time we open a browser and connect the PicoBoard, the indicator is red or yellow. So we then have to close the browser and start again. Once we’ve done this, the indicator is green when we connect the PicoBoard and the students are set to code. Unfortunately, if the students save, close out of the editor, and try to work on this project again at a later time, the indicator is red and the PicoBoard does not connect anymore. Our solution for this is to backpack every sprite (with it’s codes) and then transfer them to a new editor page. Here we can connect the PicoBoard and continue coding.

Saving a ScratchX project doesn't overwrite existing .sbx file

If you attempt to download a ScratchX project twice, the second download does not overwrite the first one. Instead '.sbx' is appended twice to the filename. A dialog should popup asking if you want to replace or cancel.

Steps to reproduce:

  1. Create a project on ScratchX
  2. Save the project with File > Save Project
  3. The file is saved with the name ProjectName.sbx
  4. Save the project again with File > Save Project
  5. The file is saved with the name ProjectName.sbx.sbx

Projects persist unexpectedly

  • Open scratchx.org
  • Click on the Text to Speech extension link
  • Click on the ScratchX logo on the editor when it shows up
  • Click on Mesh when homepage shows up

Items from the previous project are still visible on the editor. It seems it should have a new empty project instead.

Scratch Extension Plugin Cannot Connect To Devices With More Than One HID Interface

The MakeSense device (http://makesense.co) exposes 3 HID interfaces and the Scratch plugin cannot seem to connect to any of them. The interfaces are:
?\hid#vid_04d8&pid_f46a&mi_00#7&e3da3d9&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} - 0
?\hid#vid_04d8&pid_f46a&mi_01#7&3214e19b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} - 0
?\hid#vid_04d8&pid_f46a&mi_02#7&32de4c95&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} - 0

The device is known to work fine when connected to other SW via standard HID APIs.

Provide an easier way for synchronous(ish) hat block execution

Since hat blocks appear to be executed asynchronously, it can be difficult to toggle multiple instances on and off. This can be demonstrated in the alarm_extension.js example. If there are multiple active "when alarm goes off" hat blocks, only one gets executed. This is because the alarm_went_off variable is reset after the first hat block is executed.

It seems like the best way to workaround to is to use some sort of reset timer to change the variable back to false. However, since the reset timer would have to use some arbitrary amount of time, this solution is not ideal.

new (function() {
    var ext = this;
    var alarm_went_off = false; // This becomes true after the alarm goes off
    var reset_timer = null;

    // Cleanup function when the extension is unloaded
    ext._shutdown = function() {}; 

    // Status reporting code
    // Use this to report missing hardware, plugin or unsupported browser
    ext._getStatus = function() {
        return {status: 2, msg: 'Ready'};
    };  

    ext.set_alarm = function(time) {
       if (reset_timer) {
         clearTimeout(reset_timer);
         reset_timer = null;
         alarm_went_off = false;
       }
       window.setTimeout(function() {
           alarm_went_off = true;
       }, time*1000);
    };  

    ext.when_alarm = function() {
       if (alarm_went_off === true) {
           if (!reset_timer) {
               setTimeout(function() {
                   alarm_went_off = false;
                   reset_timer = null;
               }, 1000);
           }
           return true;
       }

       return false;
    };  

    // Block and block menu descriptions
    var descriptor = { 
        blocks: [
            ['', 'run alarm after %n seconds', 'set_alarm', '2'],
            ['h', 'when alarm goes off', 'when_alarm'],
        ]
    };

    // Register the extension
    ScratchExtensions.register('Alarm extension', descriptor, ext);
})();

Is there a better way to handle these situations?

(function (ext) ? Is that a valid code?

The boilerplate code in the developer documentation starts with
(function (ext) {
and because Brackets kept giving me errors about it, I removed the first left bracket. However, bad things happen since I removed it, and I began to wonder, is that a valid code? There is no closing bracket for the first left bracket. Google search reveals nothing.

Thanks.

Text changes on homepage

This is correcting something which is incorrect regarding the plugin.

Change 'Any' --> 'Many' in description of device plugin download:

Note: To use any physical extensions, you need to download the Hardware Plugin.

No error message when Flash is unavailable

If the user doesn't have Flash installed, then the buttons on the ScratchX homepage just seem to not do anything. It would be nice to show an error message somewhere to let the user know why things are broken.

Please add x(close) button on 'Load Experimental Extension' dialog.

I am making scratchx + arduino app.
Arduino extension example of scratchx main site only works in firefox browser now.
(Chrome doesn't support NPAPI now.)

So I have a idea to make this can work in any browser using nw.js.

But, When I click ''Load Experimental Extension' in chromium or explorer, they stopped.
I guess modal(?) css can't work well in these browser.

Do you have any idea to close this dialog(full screen blue dialog) ?

If it's not possible,
Please add x(close) button on 'Load Experimental Extension' dialog.

Blue screen looks like below.
http://www.codeme.kr/x4a/screen.png

Any way to update menus in blocks?

I am creating a ScratchX extension, and have the code

var descriptor = {
blocks: [
[' ', 'Connect to IP %m.ipSelection', 'ipConnect', 3]
],
menus: {
ipSelection: ['Loading IPs, please wait...']
},
};

as my descriptor object. I basically want the user to choose from a list of IP addresses to connect to.

However, my problem is that the IP addresses take a few seconds to load into my js file, and when I use the code

descriptor.menus.ipSelection = newIPs;

to try and update the menu in the block, it updates the descriptor object, but not the contents of the menu in the block.

Is there a way for me to be able to update the menu inside one of the blocks?

Thanks

Costume library, sound library missing

The costume library and the sound library are missing. I have a temporary fix in place for the sprite library and the background library, but it may be worthwhile to solve this by making the editor SWF get the library items from scratch.mit.edu

Suppressing extension problem dialog box for plugins

My program does not require a plugin since it uses its own servers connected via Websocket. Is there a way for me to suppress the user from seeing this message.

The dialog box says "See the tips window on the right to install plug-in and get extension working".

I set the status indicator in Scratch to green only after the first board is connected to Xi server, but when this occurs is up to the user.

Adding Seperators and choice of color for blocks

Would it be possible when specifying the block text in the .js file to also specify a block color?

I am writing an extension that will have similar functionality for several hardware devices and would like to classify/separate the device types by color.

Also, it would be nice to be able to draw a separator line between any given blocks so that "classes" of extension blocks would be more apparent.

Can Scratchx Run on a Local Webserver?

I require an offline version of Scratchx due to my work in rural locations. Is it possible for
me to host a version of Scratchx on my own local web server? Is the file structure of this
repository such that I can clone them to a location where I can point a web server to serve them?
If so, I'd like to host them using a simple NodeJs server. Are there any special things to consider as this
is a Flash app?

Is it Possible to For Scratchx to Load Extensions from the Local File System?

Hi, I've created a standalone web server to serve Scratchx in environmnets without an internet connection. Now I wish to be able to load extensions from the local file system in the same manner as loading a local .sbx file. Is it possible to make a mod so that I get a local file chooser dialog when I choose to load an extension?

Can't get ScratchX to run on any browser with hardware devices

I am having a problem using ScratchX with hardware devices either Lego Wedo or Arduino. In both the problem is the same, the hardware device is connected to the laptop but it always show the yellow circle on ScratchX project. What might be the problem ?

Thanks

Arduino servo

After a lot of experimentation, I was finally able to get the following code to run - http://screencast.com/t/3pQu4Nu7 - generating a pop and moving the servo between two positions. I did a Save Project to the local file system.

The green light is still on and when I do a File>Load Project from the local file system, the code is loaded and the green light is changed to yellow. The code runs and I hear the pop, but the servo does not move.

What is the proper way to Save the project and then Load the project and have the servo work?

Is there an example where the code is loaded and ScratchX is connected to the Arduino so that the code will run and move the servo?

I touched the servo and it is very hot. I unplugged the Arduino and the servo cooled down.

Thanks

Chuck.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.