lord_midnight
18 posts
|
especially here on kong, will actionscript 2 be supported over say the next 5 years ?
|
|
|
Draco18s
5885 posts
|
AS2 will always be available on Kong, it’s kinda hard not to have it.
But in general, 5 years is a long time. Its hard to say is AS2 will still be alive after all that time.
|
|
|
lord_midnight
18 posts
|
thank you, I have flash8, and I was trained on it, I have a couple of projects well established in as2. I expect I will be looking into upgrading my software in another year or two, longer is possible, until then, as2 is fine for my needs. I hear CS5 is coming in spring, if they roll out actionscript4 then, I might try to jump on with everyone else. I probably will stay with as2 until is rolled out, and I can start on it fresh with everyone else.
|
|
|
rarapompoms
184 posts
|
I don’t think there will be an “ActionScript 4” as such. They’ll carry on developing AS3, but there’ll be no big overhaul like AS1→AS2 or AS2→AS3. I think the language will stay mostly the same from now on, and that the next sizable update will be called AS3.1 rather than 4. I really wouldn’t hold off moving up, flash player will keep supporting AS2 but the community won’t. In a years time you’ll find it difficult to find AS2 help, you won’t be able to use any new APIs or librarys and your code will be terribly slow compared to the latest AS3 version.
|
|
|
ssjskipp
258 posts
|
From the looks of Adobe, they’ll probably just refine AS3, and then focus on AIR. It seems their goal is to phase out Java… They’re really trying to reach into mobile devices and desktop development. In any case, AS3 is pretty good in terms of OOP methods, as in, it’s about as developed as it needs to be.
|
|
|
JWBSoftware
76 posts
|
Depends what you mean supported. Many APIs are AS3 only already, and I’d expect this to accelerate. The installed base for Flash 8 is almost non-existent, and with AS3 being faster and more capable, and free tools like Flex available for it, there’s little reason to stay with it. So many APIs are not being back-ported, and developers are instead being pointed in the direction of AS3.
I agree that we’ll likely not see an AS4, i.e. a new language, for a long time if ever. Adobe are more likely to add things to AS3, as they’ve already announced with Flash CS5. There’s a lot they can do to make it better – new APIs, better tools, a faster runtime, new targets – and from what I’ve seen CS5 is only scratching the surface. And the imminent new version means developers are more likely to be looking to that than to a five year old language that hardly anyone uses – better for them to focus on CS5 compatibility.
|
|
|
Draco18s
5885 posts
|
Originally posted by JWBSoftware:
The installed base for Flash 8 is almost non-existent
I have to ask what you mean by that, as Flash Player 8 has almost no existence, but code compiled for FP8 can be run by Flash Player 8 and up (eg. FP 10).
|
|
|
SuperMarioJump
303 posts
|
I think he meant Flash 8, as in the IDE. Meaning that very few people don’t have the option to use AS3.
|
|
|
Draco18s
5885 posts
|
Originally posted by SuperMarioJump:
I think he meant Flash 8, as in the IDE. Meaning that very few people don’t have the option to use AS3.
And that some how invalidates the number of people who code in AS2 using CS3 or CS4?
|
|
|
Cloud_9ine
2434 posts
|
I would like to add, the Wii and other platforms are limited to the version of Flash they can use, and so they can only use Flash versions that use AS1 and 2.
|
|
|
SuperMarioJump
303 posts
|
Not wanting to speak on someone elses behalf, but I think the point he was getting at was that a year ago many people said they couldn’t change to AS3 because they only had Flash 8. Recently most seem to have upgraded to CS3/4, so now there’s no real reason for them not to move up. The fact that people stuck with Flash 8 is perhaps one of the reasons AS2 has stayed around so long.
|
|
|
BillysGames
235 posts
|
> Will games coded in AS2 continue to fill Flash game sites such as kongregate 5 years from now?
Absolutely. With Flash 9, Flash Player was split into two virtual machines with AVM1 for AS1/AS2 and AVM2 for AS3. You can continue to provide support for viewing of legacy content (keeping AVM1) while simultaneously deprecating AS2. While Adobe might work harder to push for all new content being AS3, I see no reason why it would just suddenly drop legacy support in such a short timeframe as 5 years. There’s lot of old Flash content out there that will perhaps still be floating around the web a few decades from now, and suddenly making it unusable would cause a huge uproar. Eventually, they might cut the cord, similar to the removal of DOS support from Windows, but 5 years is much too soon. No chance.
> Will people stop coding in AS2 5 years from now, and code exclusively in AS3
Again, no. The timeframe is too short. Flash development is filled with, frankly, a lot of people who aren’t very skilled. A whole ecosystem of tutorials and code snippets exists tailored to doing specific tasks and effects. Until Adobe drops AS2 support from their authoring tool completely, these millions of tutorials and snippets will continue to remain relevant, and continue to fuel the casual, barely skilled developement of tons of new Flash-powered sites. You’re not going to convince web designers that they should switch all their rollovers, preloaders and eye-catching, swirling, swiping effects and navigation to AS3.
> Will AS2 eventually disappear
Probably not completely, but if Adobe ever drops support for legacy content, then it will almost disappear, and you’ll have to run antique Flash movies through a Flash equivalent of DOSBox
Again, it all depends on what Adobe does with their authoring tool. If people can continue to use AS2 for simple (and not-so-simple) tasks, they will. What you won’t see, however, is a situation where everybody sees the light and realizes that AS3 is objectively better (It is) and switches just on principle. That’s not how it works. But we will slowly get more and more converts. Serious programmers were on board before it was released. The more casual audience will be very stubborn and will have to have it taken away from them.
|
|
|
JWBSoftware
76 posts
|
Originally posted by Draco18s:
Originally posted by JWBSoftware:
The installed base for Flash 8 is almost non-existent
I have to ask what you mean by that, as Flash Player 8 has almost no existence, but code compiled for FP8 can be run by Flash Player 8 and up (eg. FP 10).
I meant that almost no-one has Flash 8 installed: Flash 9 or higher is on over 99% of PCs. They can still run older AS2/Flash 8 games: my point was there’s no need for developers to stick with AS2 because of the installed base. I’m surprised by anyone who wants to stick with AS2 now. Especially for larger projects the benefits of AS3 are significant.
AS2’s not going away any time soon: even if Adobe pull support from Flash CS and new tools you’ll still be able to use older IDEs, and AVM1 will be with us forever. But AS3 already streets ahead will keep getting better; AS2 won’t.
|
|
|
Draco18s
5885 posts
|
Originally posted by JWBSoftware:
I meant that almost no-one has Flash 8 installed: Flash 9 or higher is on over 99% of PCs. They can still run older AS2/Flash 8 games: my point was there’s no need for developers to stick with AS2 because of the installed base. I’m surprised by anyone who wants to stick with AS2 now. Especially for larger projects the benefits of AS3 are significant.
AS2’s not going away any time soon: even if Adobe pull support from Flash CS and new tools you’ll still be able to use older IDEs, and AVM1 will be with us forever. But AS3 already streets ahead will keep getting better; AS2 won’t.
I stick with AS2 because I actually understand what I’m doing. AS3 has caused me nothing but trouble so far (my most recent experience is loading an external movie onto the stage with a button, I need another button that can make it Go Away Again, but due to the way addChild() works, I am (seemingly) incapable of giving this movie an instance name which I can reference for the removal.
As for that second paragraph: Flash CS? There is no Flash CS. It was Flash 8 then Flash CS3.
|
|
|
rarapompoms
184 posts
|
Originally posted by Draco18s:
As for that second paragraph: Flash CS? There is no Flash CS. It was Flash 8 then Flash CS3.
You’re being really picky there. I think you’re frustrated at being stuck in AS2.
|
|
|
JWBSoftware
76 posts
|
I stick with AS2 because I actually understand what I’m doing. AS3 has caused me nothing but trouble so far (my most recent experience is loading an external movie onto the stage with a button, I need another button that can make it Go Away Again, but due to the way addChild() works, I am (seemingly) incapable of giving this movie an instance name which I can reference for the removal.
AS3 removed or deprecated a lot of things because they were horribly slow: accessing stuff by name is one of these. The preferred way to do things like this now is with variables, i.e. store a reference somewhere which you can access later to do removeChild(). Quicker and once you’re used to it easier to work with as you can e.g. look at a variable in the debugger to see if it’s valid, look at it’s properties. Impossible if all you have is its name.
And yes, it’s called Flash CS: We’ve had CS3, CS4 and soon will have CS5 so you should be used to the naming scheme by now.
|
|
|
SuperMarioJump
303 posts
|
Weird that you couldn’t find a way to remove something on the stage. Assigning the clip to a class variable and calling removeChild(clip); would have worked. As would removeChildAt(3); or removeChild(getChildByName("clip"));. Did you actually try to learn AS3 or did you think you could guess most of it?
|
|
|
JWBSoftware
76 posts
|
Yes, they left in ways to access things by name, together with warnings. From the docs:
The getChildAt() method is faster than the getChildByName() method. The getChildAt() method accesses a child from a cached array, whereas the getChildByName() method has to traverse a linked list to access a child.
I.e. it’s a bad idea to use getChildByName() in performance-critical code if you’ve a lot of things in your container. And getChildAt() is unnecessary if you use a variable to store the DisplayObject somewhere.
|
|
|
Draco18s
5885 posts
|
Originally posted by rarapompoms:
Originally posted by Draco18s:
As for that second paragraph: Flash CS? There is no Flash CS. It was Flash 8 then Flash CS3.
You’re being really picky there. I think you’re frustrated at being stuck in AS2.
I own CS3.
Originally posted by SuperMarioJump:
Weird that you couldn’t find a way to remove something on the stage. Assigning the clip to a class variable and calling removeChild(clip); would have worked. As would removeChildAt(3); or removeChild(getChildByName("clip"));. Did you actually try to learn AS3 or did you think you could guess most of it?
Instance name of the created clip is not static. This is the main issue.
Originally posted by JWBSoftware:
AS3 removed or deprecated a lot of things because they were horribly slow: accessing stuff by name is one of these. The preferred way to do things like this now is with variables, i.e. store a reference somewhere which you can access later to do removeChild(). Quicker and once you’re used to it easier to work with as you can e.g. look at a variable in the debugger to see if it’s valid, look at it’s properties. Impossible if all you have is its name.
I tried that. Because the code that creates the clip is “on” a button, I am unable to save that variable to a location where I have access to it later from a different button.
And yes, it’s called Flash CS: We’ve had CS3, CS4 and soon will have CS5 so you should be used to the naming scheme by now.
But Flash was not in the first Creative Suit. http://en.wikipedia.org/wiki/Adobe_Creative_Suite#Creative_Suite_1_.26_2
“Flash CS” does not exist, neither does “Flash CS2.”
|
|
|
SuperFalconKick
98 posts
|
You shouldn’t have the code on the button then. He never said there was a CS1. He used Flash CS to refer to the whole Creative Suite, rather than saying “the current or any future releases of the Flash Creative Suite Range”. It wa fairly obvious what he meant.
|
|
|
Draco18s
5885 posts
|
Originally posted by SuperFalconKick:
You shouldn’t have the code on the button then.
Facepalm
The code isn’t on the button (as AS3 doesn’t let you do that). It’s in a frame and attaches an event to the button which calls a function which attaches the movie (all code is in the frame). That’s why I said “on” as its connected to, if not directly on, the button.
|
|
|
I_wear_shoes
44 posts
|
Your quotation marks were misleading and I’m pretty sure you can put AS3 on a button in the actions panel. Anyway, if you made a topic about this and explained your problem clearly you could have found your solution quickly instead of dismissing the language entirely.
|
|
|
SuperMarioJump
303 posts
|
Where ever your code is, as long as you added the clip to the stage stage.removeChildAt() or stage.removeChild(getChildByName()) should still work. The obvious way would be just to have a document class:
package{
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.*;
public class Main extends Sprite{
private var clip:MovieClip;
public function Main(){
btn1.addEventListener(MouseEvent.MOUSE_DOWN, onBtn1Down);
btn2.addEventListener(MouseEvent.MOUSE_DOWN, onBtn2Down);
clip = new Clip(); // if it's an external movie you'd use a loader here
}
private function onBtn1Down(e:Event):void{
addChild(clip);
}
private function onBtn2Down(e:Event):void{
if(contains(clip))
removeChild(clip);
}
}
}
This is pretty basic stuff I’m surprised it stumped you.
|
|
|
Draco18s
5885 posts
|
Your quotation marks were misleading and Iām pretty sure you can put AS3 on a button in the actions panel.
1) No you can’t. Try it.
Anyway, if you made a topic about this and explained your problem clearly you could have found your solution quickly
2) I’m had to do it for a job, when I ran into the issue my employer said that the inability to “go back” was not an issue and he could live with the results. So I stopped looking for a solution.
the obvious way would be just to have a document class
3) Because I am doing this for an employer who is dumber than a block of salt I am not introducing another file to his (already extremely anal) directory structure. He’d be asking me every month WTF the file is for and why he can’t delete it. One set of animations is already entirely done through AS, and while I barely understand the code—I understand it on the level of knowing what it does and how it does it, but not to the level of being able to duplicate it for another set of animations—he asked me about four times now why that directory doesn’t comply with his standards (eg. “all source in the Media Source directory, no subdirectories”).
instead of dismissing the language entirely.
4) I dismissed the language long before this, back when I had a button that I needed to animate and then function afterwards and was unable to find a solution. I had a very restricted scope I could place the code for the button due to the functions it needed to call (one of which was in the document class, another was in a class that was instantiated inside the document class, so due to scope access I had no access to either of these functions outside of the document class).
Took me two god damned hours to not find a solution, whereupon I gave up and removed the animation.
|
|
|
Jabor
11382 posts
|
one of which was in the document class
Make it public?
another was in a class that was instantiated inside the document class
Stick the instance in a public variable?
|