Re: [Flashcoders] Noise Cancelling in Flash
I wondered whether noise cancelling was possible in Flash using the Microphone functionality? Not at present. However, if v8.5 offers binary access to the waveform, you could use any of a dozen standard noise cancelling algorhithms on them, or you could do your own by inverting the waveform and clipping at a low amplitude, then combine the waveforms, kind of like a noise gate (only sounds above a certain volume get through). Or you could add low pass and high pass filters to remove sounds outside of the range of the human voice. And so on. Without low level access to the waveform, though, you're SOL. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Gotcha: F8 Security Model
I don't see upside. It just sucks. The upside is that it keeps people from stealing your Flash content. It lets you explicitly state who is allowed to consume your Flash content, which is a good thing as long as there is an easy way to allow more access, which there is. Look up crossdomain policy file in the Flash help. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: SV: SV: [Flashcoders] Microsoft Sparkle
My entire point is cluttering the web is bad, can't believe you didn't see that. Or perhaps you just havent read the entire thread i dunno :) Sure, but for every new technology, 10 people will use it well, and 1000 will use it to clutter the web. Remember the blink tag? It's just the nature of the beast. You and I have to tolerate the clutter so that we can (hopefully) be one of the 10 who are producing real web apps that utilize whatever the new tech is. 3D on the web could be very useful for certain types of apps. It would be worse than PhotoShop bevels and dropshadows (or rainbow gradient backgrounds) on most of them. But without it, those few apps that can put it to good use don't get written. You gotta take the bad with the good, it's just life. So to reiterate: XAML as a web technology, and a platform dependent one at that, is bad. XAML as a generic applications development tool is NOT bad. XAML is as good as any other abstraction schema for your display layer. What's wrong it it for the web? Having a defined schema sure beats the hell out of having to write your own for every project that needs one, doesn't it? A lot of people like to lambast MS about creating proprietary tech rather than conforming to the standards. What they usually fail to mention is that, both on the web and on the desktop, the majority of those standards were once proprietary MS implementations that were adopted into the standard. You like iframes? Div tags? Being able to choose to render block items as inline, or absolitely position them? At one time, *these* were the proprietary MS implementations that everyone complained about, asking why they couldn't just stick to the standard. Let them implement their proprietary ideas into the browser, and who knows, 2 years from now XAML may become the standard markup behind your display layer. Or not. Who cares? I'll use whatever works the best. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] AMFPHP for commercial projects
Question: What's your opinion and/or practice of using AMFPHP for client's project? So far, I haven't felt comfortable recommending it to clients, but I admit I haven't even looked at it as an option in more than a year, so I don't know what has been improved. If John felt comfortable recommending it to his clients, then I would hazard to say that I might be able to recommend it as well. It's really going to end up being more about how comfortable your client is with OSS software and how comfortable you are supporting it if it breaks. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: SV: SV: [Flashcoders] Microsoft Sparkle
i've read specs, watched demonstrations, i've TRIED to be excited, but all i can tell is that it's another proprietary tech trying to cash in on a growing market. Which specs did you read and which demos did you watch? Certainly not the same ones I've read and watched. First of all Sparkle doesn't even play the same *sport* as Flash, let alone in the same field. The uses of Sparkle in the browser will be next to nil for at least several years. The few uses it has in a browser will be reserved for special purpose, controlled enviornment applications, and are in no way a threat to Flash. So I guess I don't know where any of this rant comes from. Sparkle is awesome. It is a major step in the right direction in terms of workflow improvement and abstraction of display (view, presentation, whatever) layer code. It has little to nothing to do with the web right now. It has to do with building user interfaces for applications that will run on Longhorn. Yes, it's properietary. So is Windows. Get over it and find something meaningful to argue about. Oh, and your rant about forcing people to use PC hardware, WTF? What platform *doesn't* use PC hardware these days? ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: SV: SV: [Flashcoders] Microsoft Sparkle
you mean intel chips? or the usual pc architecture? things like phones and other mobile devices, non microsoft gaming platforms for example. I don't know, he said it, I was just responding to it. The quote was: As long as they use their tools, and make their customers conform to PC hardware. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Documenting my code
As far as I can see from the front page (Roadmap panel) it doesn't yet support JavaDoc as a style, which is a shame... What doesn't it support? This is cut and pasted directly from the NaturalDocs documentation: -- /* * Function: Multiply * Multiplies two integers and returns the result. */ and /* Function: Multiply Multiplies two integers. Parameters: x - The first integer. y - The second integer. Returns: The two integers multiplied together. See Also: Divide */ -- This was cut and pasted directly from the Sun spec on javadoc comments: -- /** * Registers the text to display in a tool tip. The text * displays when the cursor lingers over the component. * * @param text the string to display. If the text is null, * the tool tip is turned off for this component. */ -- The whole idea of NaturalDocs is that it doesn't care what style of comments you use, it will work with almost any style. All that said, if you look around I'm sure you can find a number of open source documentation generators based on the javadoc comment style. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Documenting my code
Or, can anyone suggest an alternative software that takes the java-doc style comments and create documentation? Check out NaturalDocs. It's free (open course), and it reads almost any style of comments. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Making things
Does anyone have experience with using the materials of MakingThings.com and how I can obtain their packages in Europe. Because I wasn't really planning to pay $70 to let it shop to Europe. That's like ~80% added to the price. Expensive. They have a Yahoo group ([EMAIL PROTECTED]) you could ask on, I know some of the guys that work there administer the list. I haven't bought any of their stuff, but I've been thinking about it for several personal projects. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Massive XML files and Flash
I'll be glad when I can release an AS3 version and take advantage of E4X. Even then you'll have issues with the amount of time it takes to parse large datasets. However, with native RegEx in 8.5 as well, you can write much more robust string splitting routines that are less dependant on the exact format and more tolerant to minor changes. Not to mention much easier to update if the format changes drastically. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Massive XML files and Flash
I'm also working with massive amounts of XML data and cannot find a way to speed up my parsing routine. (For one set it takes 10+ seconds to release it's grip on the processor. Not allowing the user to do anything, of course) Like I said, break it up across frames and show a progress bar. 10 seconds isn't a long time to wait if there is a progress bar and the rest of the app is working, but it's a loong time to wait if the whole app is locked up. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Massive XML files and Flash
How would you break it up? Overwrite the onData event, take the data as a string and pass it off to a frame loop that parses x number of records per frame. You can teak the number of records per frame to fit the app, depending on how long parsing takes. The easiest way to do that is to not use XML at all, but use a format that is easier to parse, like comma delimited or fixed-width. Check the archives, it's been discussed at length before. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Massive XML files and Flash
Xpath looks pretty sweet, anyone used it for simillar data sizes? XPath won't help with the initial load and parse. What you're going to get is a long pause with your processor usage at 100% while the XML object parses the string. The more records/larger the file, the longer the pause. XPath also adds some overhead, which may be minimal, but with the amount of data you're talking about, it could quickly become significant. Besides, I'm not fooling with any 3rd party workarounds, not with E4X on the way. From the Adobemedia flex2 FAQ: http://www.macromedia.com/software/flex/productinfo/faq/flex2_faq.html - What new features will Flash Player 8.5 introduce for application developers? Flash Player 8.5 delivers a number of features that contribute to developer productivity, including a new, more powerful version of the ActionScript programming language, improved runtime errors that help in debugging, and ***native support for ECMAScript for XML (E4X) and regular expressions***. Flash Player 8.5 also delivers significant improvements in performance and a reduced memory footprint, enabling more responsive user interfaces. - Here's an IBM article on E4X: http://www-128.ibm.com/developerworks/library/ws-ajax1/ RegEx + E4X means insanely fast custom parsing and conversion, plus insanely fast searches and filters for XML. The need for XPath is about to be a thing of the past (whenever they get around to releasing 8.5, that is). ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
[Flashcoders] Any good 3rd party penetration numbers for v8 yet?
Does anyone have any references to 3rd party Flash 8 player penetration numbers? I have some execs asking me if it's safe to use v8 yet, and they're looking for numbers in the 70%-80% range. Of course they'll doubt numbers from Adobemedia, so 3rd party numbers would be better. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Any good 3rd party penetration numbers for v8 yet?
I dont have any numbers, but have you thought about using the express install feature? then maybe you wouldnt have to wait for the penetration numbers. Heh... did I mention that these are executives that are asking? They don't want to make anyone click yes, they just want it to work. Given that attitude by many companies, it's pretty amazing that Flash gets as much penetration as they do. Apparently people play a lot of games and look at a lot of independant sites, and the corporate penetration is just a useful side effect. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Massive XML files and Flash
Yeah, not to be a downer, but AS 3 is going to require the 8.5 or 9 player, so that's only good if your audience has it... I've been excited about Flex 2, but the excitement is tempered by the fact that even if it comes out this spring, I won't be using it for real projects at least another 18-24 months. Yeah, but for web-based projects I'll be using the server for what it's good at and forget about parsing that much data. Bringing the whole database to the client doesn't work well anyway. For stand alones, I'll get to determine the player version, and that's where I'll end up needing E4X and RegEx, not just for the convenience, but out of necessity. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Any good 3rd party penetration numbers for v8 yet?
The most recent NPD audit was performed mid-December, and so I'd expect results up on the website pretty soon. Be sure to announce when you have solid numbers available, because I can use them not only for my day job, but also for lots of contracts. A lot of people are still nervous about v8 being new (not that 4 months old is new in this industry), and are afraid of extra dialogs and whatnot, so I get stuck back in v7 even though I can demonstrate that their app/site would perform substantially better compiled for 8. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Massive XML files and Flash
xpath has been around for a while XPath != *native* E4X XPath only bears a passing resemblence to E4X, and is nothing like it in terms of performance. You should check out http://labs.macromedia.com and download the Flex2 alpha. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Massive XML files and Flash
I find myself in a situation where I need to build a tool to analyse lots of xml data. Thousands of records containing a lot of strings as well as numericals. When I found myself in this situation I did 2 things: 1. Don't use XML, it is way too heavy for this much data. I found that by using a double-delimeted or fixed-width data format, the file size was reduced by as much as 70%. In the end, I went with fixed width because I could parse it faster (by avoiding calling split() thousands of times). Now, I still used the XML object, but instead of letting it parse the file, I overwrote the onData event and used my own parsing function, which generated objects directly instead of parsing it out to an XML object. Essentially, the XML object just read the data in and dumped it to my parsing function. 2. Don't try to parse it all at once. What I did was dump it all into a buffer when it was loaded, and then fire off a parsing function that parsed 250 records per frame. I found that number through trial and error, you can find your own balance. The important thing was, the application didn't stop functioning while the records were being parsed, you could go to other areas of the app and use it normally, and when you went to the section that required the data, you got a progress bar showing how many records had been parsed. My parsing function was semi-complicated. It took the whole dataset in as a string and split it on my record delimiter, and this array became my buffer. This way I knew how many records there were to parse, and approximately how long it would take to parse them. It then sliced 250 records off the top of the buffer on every frame and passed them to the serialization function, which took them, serialized them, and inserted them into my database object. My parsing function also built several indexes while it was parsing the records, to make lookups faster once the database was ready. My application was a database of hotels, which were sortable by a number of criteria, so the parsing routine looked for those attributes of each hotel as it parsed, and when it saw a new value for one of those criteria, it made a new entry in the appropriate index for it. I made very heavy use of the object collection syntax, for example: Index[Location][USA][Texas][Dallas] ...referred to an array of hotel ids which were in Dallas, Texas, USA, which could be used to find a hotel like this: // 0 is the first index in the array of ids hotelID = Index[Location][USA][Texas][Dallas][0]; return(Database[hotelID]); In the end, it took about 5 times as much code to import, parse, and index the database than the whole rest of the application, but it worked, it was relatively fast, and it met the requirements I was given. I would've preferred for it to work from a web server, selecting what I needed from the database, but the client required that it work offline from a database that shipped with the cd, as well as be able to download an updated database from their website, and this was the best solution I could find in Flash that worked on both PC and Mac (no 3rd party wrappers). Unfortunately it had to parse the whole database every time you ran the app, but it would get the newest version from the web if you were online and it gave you the option to store it (in an ungodly-sized shared object) if you wanted to. Anyway, that's how I did it, whether or not it was successful is a matter of opinion. ;-) ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Flash Player 8.5 - Illegal Operation caused by ?
Firefox 1.0.6 also reports many syntax errors: Source Code: !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN This is just Firefox being particular about the html being what it says it is. You need to remove these doctype tags from the top of the page, because it will never be HTML 4.0 with an embed tag inside of an object tag. If you remove the doctype declaration Firefox won't call it an error anymore. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Flash Class Array bug - Please verify
Flash is still treating the array as a static member. It isn't static, but it is being assigned the array object in the prototype, which acts sort of like a static member. You need to assign (initialize) it in the constructor, rather than in the member defenition. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Flash Class Array bug - Please verify
The thing that bothers me is that no one seems to care if this is a bug or not. It shouldn't, it's been discussed at least a hundred times here already, and it's not a bug. Don't initialize class variables in the class defenition, it adds them to the prototype. Initialize them in the constructor and everything will work exactly how you expect it to. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Faster code?
If you change that function, do you re-write all of your documentation? Nope,. just add a modified comment and, if necessary, a brief description of how it was changed. Usually I write the comments before I write (or modify) the function or class, which is a great way to to write cleaner code. A lot of times I'll find myself halfway through the comment and realize that there is a better way to implement it, or a way to do without it completely. It gives you a kind of a last chance to state out loud what the function or class is for, and that's a good time to do a reality check and make sure you're not writing code that will have to be rewritten a few days later. Secondly, the requirements + code-base change so much, that documenting is a waste of time, when at any moment you could wax a class, and thus destroy 20 minutes worth of documentation time. Well, it doesn't take 20 minutes to write the comments I pasted into the previous email, it takes a minute or two. Even if you type slow and don't know hot to cut and paste the borders, it shouldn't take but a few minutes. The thing that scares me is the idea of spending the time writing whole classes that will get tossed a day or two later, *that* seems like a waste of time. Not only have you written a whole class that's getting tossed, but you've likely instantiated it in other classes, and now you have to go change all of those implementations as well. To me, that just sounds like poor planning. Believe me, I have requirements change constantly, but with good planning and design, I reduce the number of places where those changes have to take place to a minimum. I have classes I touch every day as layout and design changes get tossed back and forth, but I also have classes I haven't had to touch for months because of good abstraction, good planning, and clear documentation that explains how those (often very) abstract classes work and can be implemented and manipulated. And the main argument for documentation becomes very clear when you inherit a large project and have to make changes to a bunch of garbled code. I inherited two large projects when I started my current job, and they had no documentation, no comments at all, and no real organization. I wasted many hours untangling obscure references, breaking down what were ostensibly optimizations but didn't actually help performance, and figuring out just what the heck the previous developer was thinking when he wrote that crap. The way my code is written now, I can have our Java or C# developers review my code and with a few questions about Flash-specific APIs they can see exactly what is going on without even knowing ActionScript, just by being familiar with ECMA-based languages. Back to the OPs question about optimization. The main thing with optimization is that it should be done as needed. You can't optimize code while you write it, it is impossible by defenition. Optimization == improved performance, and if the code has never run, it can't possibly be improved, only written. A good rule of thumb is to use the clearest syntax possible first, then unit test to identify potential bottlenecks, and optimize as needed. If an optimization doesn't give you a noticable performance gain at runtime, what is its purpose? If you just enjoy writing cryptic and difficult to scan code, go for it, have fun. Personally, I like to write code that makes my job easier. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Is Adobe settings manager usable ?
UI size is one issue... if you're viewing a 60-pixel-square SWF, there's no room for an internal dialog. There are also localization and update issues. That's an important point, but one I would think could be circumvented by opening a new browser from the same domain or even locally (on the client). The biggest concern is that people will think there has been a mistake when they find themselves on MM/Adobe's website. If something *can* be done about this, then please understand that it's important to us and deserves attention. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Faster code?
The ah-hoc comes from scope creep lack of a clear vision, not from developer planning. I could plan things to a T, only to have a client change their mind, and pay for that change, rendering my planning useless.. I don't lose sleep cause I'm getting paid for it. You know that youl live in my hell, right? ;-) Seriously, I've quit jobs because of that kind of crap. It drives me insane to write all that code and then have to toss it a few days later when the requirements change drastically. It didn't used to bother me, but now that I know it doesn't have to be that way, I just can't go back. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Faster code?
The longevity of Flash code is also dubious. I mean, C/C++ pretty much stay the same. Each new version of AS adds all kinds of new syntax, class structure, methods, etc. Actionscript is far too malleable to have any real shelf life. It is pretty much the stated goal of Macromedia to put an end to that, though. The end goal is ECMA-4 compliance, which means that from here forward, ActionScript should change at about the same rate as C# or Java, and with those languages companies and developers count on classes being reusable with only minor revisions. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Faster code?
I think it reflects the nature of flash and its history. Not to mention the diverse skillset of its developer-base. A lot of people learned to write code in Flash, and the question of whether they are doing it the right way or not is debatable. In other words, as flash becomes a real software development platform, real development methodologies will become more important. That's really what it comes down to. As you start building longer-term projects and using standardized methodologies, these things start to become more important. I still do the occasional one-off animation or ad, but that's not where I spend the majority of my time these days. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Faster code?
I've yet to get a death threat from some poor sod to who had to maintain my code... but, to be on the safe side, I always keep my glock loaded. I've come pretty close to issuing several of those death threats. ;-) ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Faster code?
Anyone know of good optimizations to make to code so that it'll run faster in Flash? What specific problems are you trying to overcome with these optimizations? Optimizing before the code is completely written isn't optimization, it's simply obfuscation. To optimize something implies that there is an inefficiency you are trying to overcome. If the whole app is just slow, you should spend some time identifying which parts are slow and why, and then you can be much more focused in your optimizations. Randomly replacing chunks of your code with optimized code is likely to do no more than confuse you and *maybe* save you a few milliseconds. On the other hand, if you know exactly which loop or function is slow, there may be a number of things you can do to save tenths of seconds instead. Also, fairly often it is the approach that is inefficient, not the code itself. Fixing your specific inefficiencies may require some refactoring, but you won't know that until you identify and isolate the problem. The goal of optimization isn't to eek out every cycle you can, but rather to make your specific application run as well as it can, and often that means changing the way you approach the problem. Changing your code to use optimized loops or whatever may gain you hundredths of a second, but changing your approach can save you several seconds in one fell swoop. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Array like access to custom class?
Can I provide array like access to a custom collection object? The easiest way would be to extend Array. Then you start with all the functionality of the Array object, and you can add or remove functionality as needed. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] What not to do
A while back, I think it was Ryan Matsikas (I hope I spelled his surname right) that said something really profound and which I try to apply to every Flash project I work on: Mattes, thanks... ;-) It's really not that profound, it's just that when all you have is a hammer, everything starts to look like a nail. Just use the right tool for the job. That includes not trying to make Flash do things that it doesn't do well, especially when there are alternatives that do a much better job. And keep in mind that the job of software development is 80% planning and 20% writing code. If you plan well, you will write less code that is more efficient, not to mention easier to modify and maintain. To be perfectly honest, though, best practices really depend on the specifics of your situation. In some companies, writing efficient, stable, and well documented code is far more important than the deadline or the budget, while at other companies the opposite will be true. Your best practices will depend heavily on your employer's priorities, and the team (or lack therof) that you have to work with. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
[Flashcoders] generating documentation
I've used a number of different auto-documentation generators before, but not with actionscript. I was wondering what everyone was using, if AS2Doc was the defacto standard, or if there are others that are as good or better for documenting actionscript. I'm tasked with writing a coding and documentation standard for Flash developers (and recommending a documentation app) for my company, so I thought I would see what is out there before I go making any decisions. Any recommendations or warnings about specific software are appreciated. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] flash and ASP.NET (ryanm)
Interesting approach, Ryan. So, the big advantage here is cost (free!) with the big disadvantage being that we're limited to string data types on the return. Thanks for sharing. The other way is to use the XML object. You can put all of your return data in XML and compress it. XML is extremely redundant, so it compresses very small, and the decompression is handled by the browser automatically. With some creative use of the byte array you could probably still pass binary data (this will be a great help with images stored in a database). I also regularly use bitmasks in XML, you just have to convert them to numbers before using them. Serialization isn't a big deal, you just write a recursive function that serializes/deserializes your objects as XML and use it in your gateway class. Remoting is a convenience, from my perspcective, and not all clients can afford to pay for conveniences. In my opinion, remoting often allows the developer be lazy when they shouldn't be. I'm not saying that remoting is bad, it just lets you spend less time thinking about the transport layer, which is often a good thing, but it can let you be lazy when you should be putting more effort into an efficient transport layer. Rather than passing whole objects back and forth simply because you can, it is often more efficient to figure out how to pass the smallest amount of information in the simplest form, and then it comes down to building a well thought out transport layer. Some apps benefit greatly from remoting, but usually those are apps that depend on real-time data updates, and not your usual DB read/write apps. If you don't need real-time updates, why spend the resources on it? If you don't need a response from a save to database request to move on, why not just send it off asynch and let a background listener worry about whether it saved correctly or not? In fact, if you don't need to know your data was saved to move on, why not queue DB changes and send them out in scheduled batches, and worry about DB errors when the batch finishes, saving the end-user bandwidth and time, not to mention keeping traffic volume on the server down? It all depends on the needs of the app, of course, but I find that in most cases, remoting would often be easier on me but that doesn't necessarily mean it serves the app best. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] flash and ASP.NET (ryanm)
Ryan, how would this work? // Actionscript var IncomingData:LoadVars = new LoadVars(); IncomingData.onLoad = function(success:Boolean){ if(success){ // Do stuff when data is loaded }else{ trace(Load Failed!); } }; var OutgoingData:LoadVars = new LoadVars(); OutgoingData.first_name = Bob; OutgoingData.address = 1234 Main; OutgoingData.zipcode = 75240; OutgoingData.sendAndLoad(http://server.com/script.aspx,IncomingData,POST;); 'VB.NET Code Behind in the page load event first_name = Request(first_name) address = Request(address) zipcode = Request(zipcode) 'Do SQL query using posted data 'Munge data as necessary 'Write return data into a string called output response.write output That's about it. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Display same value in 3 fields
What I'm doing right now - Field1.text = OK Field2.text = OK Field3.text = OK What I'd like to do - GlobalField.text = OK [change propogates to 3 instances of the movieclip] private function set GlobalField(s:String):Void{ Field1.text = s; Field2.text = s; Field3.text = s; } GlobalField = OK; ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
[Flashcoders] HTML markup for highlighted text...
I'm working on a chat, and what I want to do is highlight text that is whispered. But the background-color style property doesn't work on spans, does anyone know of a good way to set the background color of text in an HTML text field? Is it even possible? ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Who wants MIDI in the Flash Player?
Personally i would rather see a more open, low level approach to sound in the player upon which MIDI and other implementations could be developed. Normally, I am all about giving flexibility to the developer, but raw sockets + byteArray + laccess to the sound buffer would be a security nightmare. It's like a big welcome mat for viruses. I wouldn't hold my breath. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Who wants MIDI in the Flash Player?
I dont understand. Are you saying that raw sockets is a security nightmare? or bytearrays? or the sound buffer access? Raw sockets and bytearrays are already in flash 8 so are you saying there is already a security nightmare? Or are you saying that sound buffer access would somehow tip the scales into a security nightmare? If so, how? It seems to me that that is no more dangerous than giving developers direct access to the screen display buffer which they now do already in flash 8. It is the combination. With all 3 of those, you would have unrestricted access to download and execute code on the client machine without any way for the VM (flash player) to determine if the code was malicous or not. Pushing malicous code into the sound buffer is an old and well known way to get virus code onto a client machine, because audio streams can't be virus checked without causing latency, which is an unacceptable cost in fields like gaming and other types of distributed interactive media. The screen buffer access you have is only for the Flash renderer, it doesn't give you direct access to the system-level screen buffer (no hardware or even OS level access). Audio goes directly to the systel-level sound buffer to minimize latency, making it a prime target for a virus entry point. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Who wants MIDI in the Flash Player?
Raw sockets, are still restricted by the same cross-domain restrictions as exist in flash 7 8, so sites have to specifically allow flash clients to connect (opt-in) Well, obviously, a virus author would allow connections from other domains, to allow his virus to spread. The cross-domain restrictions protect the *server* from your flash, not the client. direct access to sound buffer? how could there be any security problems with this? flash already can play sounds, so the most direct access would let you do, is create very strange sounds that maybe you couldn't compress in mp3? maybe you could write some kind of nerual virus, that when people hear it, in infects their brain? No, direct access would let you write *any* kind of binary data to the sound buffer, and when the sound buffer overflows, that data gets dumped into a predictable place (in memory or to disk, depending on the OS, etc). If they can find a way to execute that code they can install a virus on the client, bypassing both the virus scanner and the firewall. It's old school, I know, but it is still being used by viruses all the time. Add into the equation file system access and you've got a whole list of ways to compromise the client with an innocent-looking Flash x-mas card. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Who wants MIDI in the Flash Player?
Honestly I cant imagine that it is not possible to create a buffer that stores numbers that represent sound waves where the flash engine routes those numbers to the audio out driver. This would be no different than the way flash handles the display buffer using exactly the same methodology. The audio and sound techniques would be 100% analagous. *Some* kind of API could and should be exposed for developers, for sure. But only the Flash player should be writing directly to the sound buffer. Now, maybe what they should do is add a synth to the player, and shoot for something unique and interesting instead of just pushing midi through. For example, people are buying up old Commodore 64 computers to pull the SID synth chip out because it is unique and is capable of producing sounds that modern synths just can't match without the help of samplers. Building a soft-SID into Flash would open up a whole new use for Flash: the production of software sequencers and sequenced-synth playback tools. It would also allow great depth in your soundtracks without heavy wav or mp3 files. Midi could be extremely useful if there were low-level interfaces for it, so that you could attach devices that use midi to it and use the midi commands to control Flash, and vice versa. For example, this is a bottom of the line midi light controller: http://www.behringer.com/LC2412/index.cfm?lang=ENG It only handles 24 channels, but they make some that handle up to 2048 midi channels. I don't have any idea what kind of Flash content could put such controls to use, but the best way to find out would be to make it possible, and then sit back and see what people do. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Dynamic variables in as3
for(var i:Number =0;i acRate; i++){ var ['p'+i]:MovieClip = new MovieClip() this['p'+i].x = i*10 this['p'+i].y = i*10 } Which doesn't work of course. Does anybody have a work around for this, or is it no longer possible to create undeclared variables at run time. The only reason I can think of that that wouldn't work is that you can't declare dynamic variables. So you could do it like this: for(var i:Number =0;i acRate; i++){ this['p'+i] = new MovieClip(); this['p'+i].x = i*10; this['p'+i].y = i*10; } But that's not really good OOP. What you should do instead is build an array of references to your movie clips, like this: var clips:Array = new Array(); for(var i:Number =0;i acRate; i++){ clips[i] = new MovieClip(); clips[i].x = i*10; clips[i].y = i*10; } ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] How to solve SSS triangle?
I am having 3 movie Clips named point1_mc, point2_mc, point3_mc in the stage. They are arranged in such a way to form a triangle... Now how can i get those 3 angles and sides formed by these points.? With a high school geometry textbook? ;-) Law of cosines: c^2 = a^2 + b^2 - 2ab*Cos(q) Where a, b, and c are the sides, and q is the angle opposite c ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Expandable banners
But when the quality of programming on TVnose dives, You mean it gets worse than America's Next Top Model and The Biggest Loser? 8-O Right now I pay $12.99 a month for high quality programming without commercials, it's called HBO. it costs you $60 to go to the movies, At $9 a ticket we're not far from that now. a daily news papaer is $10 a day, Like I'd pay to read that crap... and finaly you have to pay $99 per month just to use your favour websites (that used to be free) The good ones don't need ads. If you content is worth consuming, people will pay to consume it. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Fairy dust
I have a quick question, im doing a script that is going to produce fairy dust, but i cant seem to get the right touch. Does anyone else have any good scripts och tips that they want to share. Click on tinkerbell. http://www.horsefish.net/elementalfx/flashdemo.html ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Bizare...AS3.0 packages have methods?
The reason why all of this is of any concern to me is that I am attempting to write solid AS2.0 today that has the potential to be migrated to AS3.0 tommorow. The reason why I havn't gone head first into AS3.0 is that my present target audience is Flash Player 7. Easy to migrate (for the mentioned functions) in a single line of code: import flash.util.* Then your trace() calls will work just like the do now. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Re: Newbie AS3 question
The idea is to use it (this) when you have two variables with the same name, usually to distinguish between the class member and a locally declared variable. You must know that :) The compiler won't know to use this or not in those cases, so it is important to use it in those contexts. Actually, the compiler *does* know, it always adds this. to references without explicitly stated scope. Which brings us full circle, all the way back to maintainability. Now, if you have a class, and all of the member functions and variables are referenceless (using assumed scope without the this reference), and all of a sudden, in the middle of a method, you have a this reference because of a potential scope conflict, what does a developer looking at your code 2 years after you've left the job think about it? Does he remove the single this reference, to make it more readable and consistent, thus breaking the method and blowing up the whole project, all without knowing how or why? Martin piped up with I would refactor the method to make it more readable... immediately, which, in this case, would've broken the method (if he removed the reference) and possibly the whole class, which is exactly how these sort of expensive, time consuming, and difficult to troubleshoot problems come up. On the other hand, if the original developer used the this reference every time, it would already be consistent, readable, and explicit about scope. The other question is, would Martin (not to pick on Martin, but he was vocal about it, so I use him as an example) take a class that stated scope explicitly and remove all the this references, possibly breaking the class in the process? It sounds like it, from his post. The question is, is that a good practice or a bad practice, and does that make him a good developer, or a bad one, given the potential for expensive and time consuming breakage caused solely by his dislike for the keyword this? In my opinion (and in the opinion of many much more competent developers than myself), it is always good to be explicit about scope, because it removes any ambiguity from the code, drastically reducing the possibility of expensive and time consuming breakage during maintenance. One more thing worth mentioning, and I don't say this to be rude or as a slight to anyone on this list, but the opinion that the this reference is bad and should be avoided seems to be unilaterally coming from people who learned programming in Flash, while the opinion that scope should be stated explicitly seems to be coming from people with more formal training in software development and experience in (non-Flash) real world development. Personally, I have to give more weight to the opinions of people with more formal training and more varied real-world experience, because there are some things you just can't learn in a year or two of using Flash for web development. There is a reason that experienced developers like to type those extra 5 characters, and it is to save time, money, and the embarrasment of explaining to your boss that you deleted something without fully understanding the implications. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Newbie AS3 question
The thought of changing multiple lines of code to go from static to non would really suck; that drives the point home for me. Thanks for taking the time to explain it Spike! That's that whole maintainability thing, which, in commercial software, is usually just as or even more important than efficiency and optimization. Incidentally, the way I handled that particular example was by making a single dynamic class that can be instantiated as a particular locale, or can change locales with a single method call, with a common set of functions and loadable locale defenitions, which was instantiated in a singleton enviornment class. That way, there is only ever one application enviornment, but potentially several different locales that can be used to format dates and numbers through a common interface. It was way easier than making 276 static classes for all the locales I had to support. ;-) ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Re: Newbie AS3 question
You do know that it (this.) is being added for you at compile time in AS2, right? Who cares? All that means is that there is no semantic difference between the two. Not quite. What it means is that the this is assumed, which is not always what you want. And if you need the reference sometimes and other times it is extraneous, why not use it all the time for the sake of consistency? ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Newbie AS3 question
Still weirding me out. To me part of the appeal of working with movieclips is their inherent hierarchy, which makes a kind of basic sense that's easy to grasp. To a Flash developer who understands Flash and has been working with it for a long time, that's true. To anyone coming from another language or platform, it makes no sense at all. It is also extremely limiting, and more flexxibility at the cost of an extra line of code is a beautiful trade off in my book. I'm guessing part of why we're waiting til Flash 9 for this stuff is because it doesn't make immediate sense in a Flash IDE context yet. A movie clip is still a movie clip, but now, instead of being the basic unit of Flash, there are smaller units, such as sprites, displayobjects, etc. More granualrity means more control, but it also means a few extra lines of code. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Re: Newbie AS3 question
All that to say, if your going to be putting this in front of every class member in AS2 and in AS3 you'll be missing the neat advantage of simplicity. As it were, the classes I write are rarely self-referential. Properties such as position, visibility, etc, are usually handled elsewhere or by other means rather than directly referring to itself, so you won't find this in my code a lot either. When it does appear it is the rare exception, not the rule, but by the same token, you also won't find referenceless method calls either. I very, very rarely put something like this._visible=false; in a constructor, and usually only because it's a quickie, one-off project that won't need to be maintained, and even if maintenance is required, there is usually only one class to deal with and everything is right there. But when I do something like that, I always use this, just so that it's clear what I'm referring to. You also rarely find _parent references in my code, because usually when I need a reference to the parent, I pass that reference in at creation time and store it as a member variable in the class. If it's not important enough to be a member of the class, then it probably isn't necessary, and if it's necessary, it's important enough to be a member. So really, this is the only ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Re: Newbie AS3 question
Of course there exists edge cases where that isnt feasible, but most programs dont implement DES algorithms (to relate this to an earlier post) and a lot of legacy code i have worked with has benefitted from being re-factored. I actually do have classes with methods so large that I had to make a base class containing only that method and then extend it (because of the size limit imposed by Flash), but as was mentioned, they are mostly encryption or compression classes, and are special cases. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Newbie AS3 question
I'd be more inclined to say it's awesome! I have to agree, I'm just dissapointed that it doesn't work like that in Flash 8. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Newbie AS3 question
This example makes me wonder: If I was to write this in AS2, it would probably look like: Think of it like this: createEmptyMovieClip is functionally equivilent to new MovieClip PLUS addChild. The benefit of seperating them is that you can add things to and remove things from the display list anytime you want, instead of creating a new movie clip and having it stuck in the scope you created it in. Think, for example, of a drag and drop paradigm. You can literally have something start dragging when you click it, only instead of just dragging, it is removed from its current container and placed in _root, so that it's on top of everything, and then when you drop it on another container, it is actually, physically (as far as that goes in the world of computers) added to that container. You didn't just move it from one array to another behind the scenes, you actually took the movie clip itself and changed which timeline it exists on, all without losing the state of the object. var game_bg:MovieClip = new MovieClip(); gameworld.addChild( game_bg ); gameworld.addChild( game_bg ); ... Think of the DisplayList as the stage, and addChild adds the movie clip to the stage at the next highest depth. Adding it again would do one of two things (depending on exactly how it was implemented), either remove it from the display list and add it back, which effectively did nothing, or throw an error because it was already on the display list. I'm pretty sure display objects can only have one parent. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Generic listeners
Dunno how to explain this better, but is there a way to have a String broadcast an event when it is changed? Object.watch works, but it is expensve. Better would be to not set the value of the string directly, but use a getter/setter that you can manipulate to fire an event when you change it. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Multilanguage sites
Make sure you encode your XML as UTF-8, if possible, write a good schema for your data format (this is not easy) and if file size is a serious consideration(which it always is), Keep in mind that you can use compression on your XML, pretty much all browsers support it. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Problem with .as files
This can also be an issue with working on a network drive. You should make sure all your .as files are local. Or make sure that your local clock is a minute or two behind the network machine's clock. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Learn AS2 or AS3?
AS1 and AS2 and AS3 all compile to Flash Player byte-code. The VM could not care less how you created the byte-code. You could define your own language and write your own compiler to generate an swf. Sort of true, but misleading. AS1(2) bytecode runs in the old VM, and AS3 bytecode runs in the new VM, and the different VMs *definately* care how your code was created. AS1 bytecode will not run in the new VM and AS3 bytecode will not run in the old one. This is a kind of clean break for Flash. Not as clean as I would like, since having 2 VMs causes bloat, but clean in the sense that the new VM is incompatible with the old one because of the fundamental changes in the way the player works. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Particle effects theory as it relates to BitmapData
I am not sure if this has been mentioned. The definitive particle effect site for Flash. http://www.horsefish.net/ElementalFX/what.html FYI, ElementalFX uses the one particle per movieclip method. ryanm [EMAIL PROTECTED] ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] flash linux
buggy. you should ask them. they know best. I wouldn't call it buggy, I would call it an incomplete implementation. Do yourself a favor and don't tell your customers that linux is supported. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] flash linux
if a feature is sometimes working and sometimes not, what shall we call it in your opinion ? Lazy ? When I'm feeling generous, I would call the linux Flash player a prematurely released beta. That's about it. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Flash player 8.5 and ActionScript 3.0
How does that work on the Mac? Go to any site developed with .NET on a mac, and it'll work. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Flash player 8.5 and ActionScript 3.0
He countered with his statement only because you appended it to this thread.. If you were not trying to draw parallel lines then why add it to this thread? Not sure whatyou're talking about, but here is the pertinent thread history: On 10/6/05, Mike Chambers [EMAIL PROTECTED] wrote: Yes. Except, i didn't say that Flash 9 (or whatever it is called), will be out in a year. Historically the release cycles for Flash have been 18 - 24 months. mike chambers [EMAIL PROTECTED] On 10/ 06/05, Rich Rodecker [EMAIL PROTECTED] replied: hmmm... http://in.sys-con.com/read/137310.htm And I replied to that. ryanm ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders