# What exactly are the things that I can/can't do in the JS function block?

What the title said. Can I do animation with it?

You can do every thing the browser lets you to do.

Except for ellipses and shapes like that-

No.you can use k=open("about:blank","","_blank") to open a new window and use k.document.write to insert the PJS context.

Look, Snap! is written in JS. You can make huge modifications to (your copy of) Snap! if you want to put in the effort to learn how. You can do animation if you learn how.

But you can also do animation in Snap!! You don't need JS for that.

I'm just learning animation in JS...that's why I was wondering.

Well, we've discussed this before: If you try to superimpose a Canvas on the stage, you'll end up fighting with Morphic. So you'd have to learn how to animate a Morph, which can certainly be done.

If you want to do animation in JS, I'd recommend playing with the code in https://codepen.io, https://jsfiddle.net, or just a local web server, not by hacking with Snap!'s internals. If you want to do animation in Snap!, program it in Snap!

The problem is that those sites are blocked for her, so the only things she can use are Snap! and Khan Academy.

But I can super impose it on a new window like this:

and no alignment fighting.
@programmer_user

That's great too.

Khan Academy is better for some smaller programs, because if you try to make a long/large program that takes forever to load, Oh Noes pops up and you'll never get to see the program.
Plus, multiplayer is impossible(boring...) on KA.

Therefore, Khan Academy isn't the best for making large games and multiplayer games.

Really?
I don't think so.

I have a q: i noticed,
A
Lot
Of
"Morph"s
.
After wondering about the dialogboxmorph and (accidentally) making one pop up with the help of the audio comp lib, how do i make a custom window?
When typing in the console putting "new morph" with a giant list. But i just want to make that.

Note: meant to be replied to the first reply with bh on it.

It's true, you can ask anyone on KA and they would say that it is impossible :\

In dev mode there's an ALERT block that makes one. But if you want something fancy with scrolling text windows inside or whatever, look at the source code for an existing one, such as the make-a-block dialog window or the Open or Save As dialogs.

Yesish, but i do not have a pc right now. How do i get to the source?

Well, just one more thing......
How do i make text pop up
Like after i save a project,
The dialog that takes 1 second to change.

If you click on the logo in the top left, one of the menu choices is "download source." That will take you to the Github repo.

Can I just say, there are a ton of interesting and sophisticated things you can learn to do in Snap! itself, rather than digging behind the scenes. I know digging through morphic.js is also fun, but I think not the best way to spend your time with us.

i'm not sure if you know this but khan academy uses like these custom functions to help make drawing easier, which is the reason why ellipse(x,y,z,a,c,idk how many arguments there are in the ellipse function) doesn't work, because those functions aren't built into JavaScript. Instead, you need to have an HTML Canvas, get its 2D rendering context, and use the function void CanvasRenderingContext2D.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle [, anticlockwise]) to draw an ellipse on screen. Khan Academy makes all of those steps into a simple function.

and multiplayer shouldn't be impossible on Khan Academy, unless they prevent you from connecting to external servers.

It's true, I haven't even seen a SINGLE multiplayer project in KA. Even the pro KA programmers say it's impossible to make a multiplayer game in KA.