Re: lingo-l resourceid reserved word?
- Original Message - From: roymeo [EMAIL PROTECTED] Never, EVER depend upon the capitalization of #symbols. For network operations, you don't even need to use symbols, so the problem is easily avoided. I always do something like this: vArgs = [:] vArgs[ resourceid ] = 123 vArgs[ HelloWorld ] = Hello, World! netID = postNetText( theURL, vArgs ) ... - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Buddy API
- Original Message - From: roymeo [EMAIL PROTECTED] And You should NEVER presume that you know my project better than I do. You seem to have misunderstood the scope of my argument. Since I apparently wasn't clear enough about it, I was only talking about freely distributed software. Kiosks, as I said, are exceptions. There are other things that are exceptions for the same reason that kiosks are exceptions: they are not freely distributed software. If the Client wants to reset the laptop resolution of those 50 sales-people to 800x600, that is the Client's right to pay me to implement. it might even make sense. The reason this is a special case in the same way that a kiosk is a special case is that the client *is* the end user. It doesn't matter what the salesperson thinks because it's not their laptop. If the client wants to install this on the home PCs of their sales force then we are back to the general case and no, you should not do that even if the client wants it because the client doesn't have the right to make that decision for the end-users. It simply comes down to who owns/administers the systems on which the projector is being installed. For everyday end-users in receipt of freely distributed software, they have no special pre-standing agreements with you about what you may or may not do to their computer so you simply do not have a right to go making assumptions about what is acceptable and what isn't. Anything that can potentially break their system simply isn't acceptable unless it is a user-instigated option. I do not see this as a difficult concept to understand or accept. If a client comes to you with a project that includes spyware in breach of all sorts of privacy laws (which obviously vary from country to country, but they do exist and this is hypothetical) should you break the law and develop that software for them anyway? No, you shouldn't. Even if it's not illegal to do something that can potentially damage a computer should you do that? No, it's not illegal but it's definitely unethical. In fact, even though changing the monitor resolution is assumed to be perfectly legal, you (either the developer or the client) may be legally liable for any damage that might be caused. However, since there has never to my knowledge been a legal test case to prove that, I'm not asserting it to be true: just saying it's something to consider, and ask whether it's a risk worth taking. Do specific contracts with the end-users make a difference? Yes, of course they do. Employees of your client are to a lesser or greater degree, the same entity, and may have signed away specific rights. In that case you can get away with more, if that's what the client wants and it's not illegal or unethical to do so. If however, the end-users have no special legal contracts with you or your client then they are not a special case. I hope I have now made it quite clear where I draw the line on this one and that I still do not agree that there are exceptions to the rule about not f!*king with hardware settings without permission: the only exception I have made here concerns how permission is actually granted, but you still have prior permission of the *user* (who may or may not be the same entity as the client: understanding the difference is quite important). - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Secure Sandbox (was: Buddy API)
- Original Message - From: Stephen Ingrum [EMAIL PROTECTED] First of all, I generally agree with you. But, there are ways to make it work. I know, which is why I feel it is important to get the point across to the casual developers out there who might not weigh up the pros cons properly, exactly how much of a Bad Thing this is. Have you noticed that the Macromedia Shockwave games (Lemonade Tycoon 2) reset your video? Yes, and this is probably why so many corporate/goverment sysadmins will not allow Shockwave installation on their networks: anyone can mark an Xtra as Shockwave safe, even if it clearly breaks the secure sandbox model. Macromedia could do with adding another level of security for Xtras signed verified by Macromedia (at additional cost to any 3rd party Xtra developer). The actual costs involved in this would probably be quite high, but this wouldn't matter, as Xtras signed using the current self-certification system would be good enough for most purposes. This would though, allow sysadmins to prevent self-signed Xtras from running on their network, which would most likely improve overall adoption of the player itself, even if certain 3rd-party Xtras can't be installed in those environments that would otherwise not have Shockwave at all. Note: For this to be completely effective, Macromedia would probably have to publish a complete list of approved 3rd party Xtras with each player release, and create a minor sub-revision release whenever that list changes. That would allow for compliance with some of the ultra-strict certification requirements that some bodies have where each application/plugin has to be individually tested for compliance. Anything that isn't tested (i.e., the latest version of Flash) can't be installed until someone gets around to manually checking it for compliance. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Buddy API
- Original Message - From: KLGC Studio [EMAIL PROTECTED] [ snip: about changing monitor resolutions ] The key is to be very polite and informative about doing so. The key is to give an *option* to do so, which the user can choose to ignore. Of course, this doesn't apply to kiosk-type presentation, but an application should never, ever, change any of the user's hardware settings without *asking* the user first, and falling back gracefully if the user has some reason why they don't want this to happen. Even giving the user such an option should be considered very carefully before implementing, simply because you never know what sort of idiots might be looking at your app and if there are enough who would say yes to an option they should have said no to then you could have a problem. Why am I so strict about this? Simply, you can *never* presume to know enough about the user's environment to know that it is safe to change resolutions. On a laptop running at 800x600, you may find out that the video card supports 1024x768, but you may not realise that changing to that resolution causes the display to switch to a virtual desktop mode. On a CRT, the video card may support the resolution and the monitor may *think* that it can support the refresh rate, but as soon as you switch the user is looking at a dead monitor because the refresh rate is unsupported. In the worst case scenario, this can cause physical damage to the monitor, although I have never seen this happen, so I think it only applies to very old ones. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Buddy API
- Original Message - From: KLGC Studio [EMAIL PROTECTED] I like the way you base your argument on a convenient snippet (taken in part and out of context), I was essentially arguing the same point, but disagreeing with the opinion that there are occasions when it is OK to change the user's hardware settings without asking (or even that asking is in itself a suitable get-out for doing so inappropriately). At first glance it appears that this is what you were saying, but having re-read your post it seems I may have been wrong about this, in which case I apologise if my reply seemed unnecessarily argumentative. Still, applications that change the screen settings without asking or refuse to work at a different resolution are a pet hate of mine so I will not agree with anyone who says there are times when it is acceptable outside of a kiosk. It is not, and programmer laziness or lack of budget is not a good excuse. An option to change resolution should be just that: an *option*, instigated by the user _at their request_, that is all. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
lingo-l XPOST: Bugs, bugs, bugs!
Originally posted on macromedia.director.lingo - replies to the NG where possible, to keep everything in one place. -- Well, it's bug announcing time again. This message contains details of two new (AFAIK) bugs. I'd be grateful if people could independently verify the bugs on their systems before I forward this thread on to Macromedia. Please say what results you get, what version of Director you are using, and what your OS is. --[ BUG 1 ]-- Since Ziggi tested for the /new/ bug in the XML parser that had previously been spotted, but was unverified, I can confirm that we have *both* now independently verified the bug. I did some slightly more extensive tests that Ziggi's, so I will give a bit more information. The repro movie is here: http://www.killingmoon.com/director/bugs/xml_parser/xml_test.dir (download: do not attempt to run from website; best run as a projector) My results (Windows 2000 only, so far): Test D85 MX2004 1 no OK 2a no no 2b no no 3a OKOK 3b no OK Details of these tests are in the movie. What this means is that in D85, you can call makeList as often as you like, although it's unlikely you'll ever want to call it more than once without parsing a new document. In DMX2004, the parseString memory leak *has* been fixed, so you can parse as many XML documents as you like, and as long as you stick to makeList and accessing the parsed XML as a list only, there is no memory leak. However, if you access any element of the XML parser object, such as child[1], etc., then this causes a memory leak. In short, if using DMX2004, use makeList, do not access nodes through the XML object. --[ BUG 2 ]-- In doing this test, I turned up another, unrelated bug. It seems that if you quit a movie by hitting the [X] button in Windows, endSprite is called in the *middle* of whatever handler is running at the time, then control goes back to that function (even though objects may have been destroyed or data invalidated). As far as I can tell, none of the following causes this bug: pressing ESC; pressing CTRL+F4; double-clicking on the control button. The following movie demonstrates the problem: http://www.killingmoon.com/director/bugs/endsprite/endsprite_test.dir (MUST be run as a projector to demonstrate the bug) Note: There are fairly detailed comments in the movie. BTW, I'd be interested to know if this is a Windows only thing, or even a Win2K thing. I've verified the problem with D851 and the MX2004 trial on Windows 2000. I'm pretty sure I've seen this bug occur intermittently with CD-ROM projects in the past, but it's been so intermittent I haven't been able to tell that this was what was causing it. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l [OT] Autoresponders
- Original Message - From: Tab Julius [EMAIL PROTECTED] (1) PLEASE turn off autoresponders, or unsubscribe. (2) If you see an autoresponder, TELL ME, but DON'T reply back to the list - that just makes more traffic and creates another autoresponder thread. This made me think about something since I am working on my own mailinglist manager for openLingo: automatically ban anyone who sends the same post to the list 3 times in a row*. Send them a reply saying you have been banned, click the following link to remove the ban. This has been done because it looks like you have left an autoresponder subscribed to the list. Many auto-responders will only respond once to the same address anyway, so this technique simply bans the lame ones (like James'), which keep sending out the same message, without the need for anyone to inform the list admin. Don't know if this can be done with any of the main standard mailinglist managers, but it's an easy thing to build in if you are writing your own, so I think I'll build this in. BTW: Just noticed something interesting checking the headers in James' emails: they have an X-Autorespond: header. Don't know how widely used this header is, but it would make sense for the list to automatically ban posts containing that header. - Robert * A more advanced version would check the references and in-reply-to headers to see if the messages are the same but in reply to different posts, in which case a ban could be enforced on the second post rather than having to wait until two had been sent out to the list. Another thing I would probably add is automatically filtering multiple identical posts, which newbies tend to do occasionally, particularly on moderated lists, because they don't take account of propagation time and think their email was not received. If someone sends the same post more than once (whether or not they are banned for apparently being an auto-responder) then the list still doesn't need to see their post more than once. [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l [OT] Html Editor
- Original Message - From: Rodrigo [EMAIL PROTECTED] The HTMLArea is a what you see... editor. You only see the code if you want to. It's developed in html and javascript. Only problem is that it's not very good: I tested it on IE 6 and Mozilla 1.6, both on Windows: the editor worked in neither browser, despite supposedly being compatible with IE 5.5 or greater on Windows. I suspect it utilises some bug or another in IE 5.5 to work (notoriously one of the buggiest browsers in existance) that do not exist in any other browser, which is why it doesn't work in 6.0. From a brief look at the source it contains lots of document.all references, so it's clearly IE specific code. My evalution: nice idea, poor execution. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l detect sprites with a certain property
- Original Message - From: Christoffer Enedahl [EMAIL PROTECTED] but this fails when a sprite has no properties as it returns a handler not in object error. so is it poosible to test for whether a sprite has any custom properties at all or not. try: if not voidP( sprite(k)[#myBuiltInCursor] ) then Note that you cannot call sprite(x).getaProp(y) (using square brackets calls getaProp internally) unless the sprite has entries in the scriptInstanceList. So, to avoid script errors, first check sprite(x).scriptInstanceList.count, then check for the property. It can't have the property if the scriptInstanceList is empty anyway. For example: on mouseUp me repeat with i = 1 to the lastChannel if( sprite(i).scriptInstanceList.count ) then if( not voidP( sprite(i)[ #myBuiltInCursor ] ) ) then sprite(i).cursor = sprite(i).myBuiltInCursor end if end if end repeat end - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
lingo-l [XPOST] ANN: LingoFish update - PHP source
A quick announcement for anyone who is using or would like to use Blowfish to encrypt communications between Director and PHP. I've just written some doumentation for my pure PHP implementation of the cipher (useful if you don't have mcrypt installed on your server), and uploaded it to my site. I was going to add a PHP section to my site (will probably do so later), but in the meantime I've just bundled the whole thing with instructions in a zip, and linked to it from the LingoFish pages. It's all here: http://www.killingmoon.com/director/lingofish/ - Robert PS: If you reply to this, please delete the extra groups from the xpost - don't reply to all of them. PPS: Sorry if this is a double-post, but I was a twat and sent from the wrong mail account. [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Event processing (was: pass with prepareMovie notpossible?)
- Original Message - From: James Newton [EMAIL PROTECTED] 3D worlds get certain events that only apply to them Got a list? Still haven't got into the 3D stuff yet. You'll find a list at the RegisterForEvent entry in the Lingo dictionary. Cheers. I'll look into the 3D events in more detail later. Also, don't forget the primary event handlers: [snip] Oh, forgot about those as well! Thanks. BTW, this article just started off as the basic event order for prepareMovie, beginSprite, etc., and it's ended up covering everything! - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l pass with prepareMovie not possible?
- Original Message - From: Jakob Hede Madsen [EMAIL PROTECTED] Unfortunately, you can't. Well, like I wrote previously; HE CAN. May I suggest that you test it yourself? Hmm, interesting, I've just checked it out in D85 and it does work - I'm surprised no-one came up with that when it was discussed before (you should have been on the list!). OpenLingo presently gets around the problem of requiring start-up code by using lazy instatiation instead, as part of the wrapper script: when you call a package for the first time it is initialised. Cleanup code on shutdown might be a good thing, but if the user puts a stopMovie handler in the internal cast and forgets to put a pass statement at the end then the openLingo stopMovie will be ignored anyway. So far there isn't anything that _needs_ shutdown code, and it may be that we can get by without it anyway. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Event processing (was: pass with prepareMovie not possible?)
- Original Message - From: Jakob Hede Madsen [EMAIL PROTECTED] Hi James, I'm still a little baffled that everyone seems to agree that 'pass' doesn't work for movieEvents. I've actually just been investigating the order of event propagation for a short article I'm writing - I started putting my stuff about dynamic puppets up on the web and ended up writing a whole bunch of related stuff that I haven't finished yet, one of which covers the Director event model. What I came up with is this: Director checks for handlers at different priority levels. If it doesn't find a handler at priority 1, it goes on to priority 2, etc. The priorities are: 1 - Sprites (highest sprite has priority) 2 - Frame script 3 - Movie script One caveat is that each level can only have one handler, so a pass passes control on to the next priority level, never to another handler with the same priority. For example, if you have a mouseUp handler on two overlapping sprites, pass will pass control from the top sprite to the frame or a movie script, but not to the lower sprite. It looks like the only part of this model that I got wrong is that each castlib has it's own priority level, so the order is actually: 1 - Sprites (highest sprite has priority) 2 - Frame script 3 - Movie script: castLib 1 (n+2) - Movie script: castLib n JFTR, I tested and this does work with sprite-level events such as mouseUp, as well movie-level events like prepareMovie. Does this sound about right, or does anyone have any further insights to offer about the event processing model? In particular, can anyone think of any further peculiarities relating to MIAWs, LDMs or anything else where cast references might be skewed in some way? - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Event processing (was: pass with prepareMovie not possible?)
- Original Message - From: Alex da Franca [EMAIL PROTECTED] AFAIK the moviescripts in the same castlib as the object lives in, which the event came from, are given precedence, and THEN the castlibs are processed in their order. but you have to test it, because I am not 100% sure about that That's true if you call a function from another function, in which case it scans from the cast where the calling function is located first. However, as far as events passing by pass goes, it always processes from castlib 1 first. I checked this before the last post to make sure I had it right. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Event processing (was: pass with prepareMovie not possible?)
- Original Message - From: Buzz Kettles [EMAIL PROTECTED] 1.5 - CAST MEMBER scripts (scripts attached TO the cast member themselves) - these have officially been deprecated, but they are still in wide usage - especially in legacy work newbie projects. Good point, I totally forgot about those. the pass concept applies primarily for the processing of mouse-related events frame events get to all the levels without the need of a pass movie events only get to their appropriate movie script (- the first one encountered within all the casts, while searching starting with castLib 1) This is a good point too; I've already got the events split into different categories, but I think I better revise the categories since there are basically 3 types of propagation: global events (e.g. enterFrame, exitFrame), interrupts (e.g. mouseUp, prepareMovie) and local messages (e.g. beginSprite, stepFrame). There are some exceptions to the basic rules, but I'd rather stick to simple categories and then point out the exceptions rather than complicate things. 3D worlds get certain events that only apply to them Got a list? Still haven't got into the 3D stuff yet. timeout objects get a selected set ... Another good point, according to the help the list is: prepareMovie, startMovie, stopMovie, prepareFrame, and exitFrame Odd that they don't get enterFrame events. Another one for the list of peculiar exceptions. Also the beginSprite/enterFrame stuff is screwy in frame 1, etc. Can you elaborate on this at all? I've heard a lot of people talk about problems with frame 1 in the past, but I've never been able to replicate a problem myself - I think a lot of the time it is fear of a bug that no longer exists, or confusion over the event order. No matter what tests I do, the order is always: [prepareMovie] beginSprite, prepareFrame, [startMovie] enterFrame, exitFrame - although obviously if you don't use frame one then beginSprite/prepareFrame will be called after startMovie rather than before. The fact that it's actually the other way around does seem to confuse a lot of people though. One odd thing I did spot in doing a quick test just now is that if you put a halt statement in an exitFrame handler in the last frame of your movie, the playhead actually moves back to frame one and fires the beginSprite handler(s) before quitting. Doesn't do it if you put the halt statement in enterFrame instead though. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l pass with prepareMovie not possible?
- Original Message - From: Roland Schroth [EMAIL PROTECTED] It is important that I can have more than one movie script with preapareMovie and startMovie procedures. Unfortunately, you can't. Lingo doesn't allow you to have two movie script functions with the same name, it just takes the first one it finds and ignores the rest. There have been discussions about this in the past on the openLingo list to try to find a workaround, but so far no-one has managed to find one. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l scriptList vs. scriptInstanceList
- Original Message - From: Jeremy Aker [EMAIL PROTECTED] What is the proper method for removing objects from a sprite's scriptInstanceList? I've been using a script such as the following with good results: repeat with i = 1 to sprite(mySprite).scriptInstanceList.count sprite(mySprite).scriptInstanceList[i] = VOID end repeat sprite(mySprite).scriptInstanceList = [] Unless you need to delete just one specicif behaviour, you can skip most of that and just go straight to: sprite(mySprite).scriptInstanceList = [] However: *never* do this from a behaviour attached to that sprite. Another sprite is OK, or the frame, or a timeout, whatever; but if you do it from a behaviour that is in the scriptInstanceList you are modifying then it will not be properly deleted and will cause a memory leak. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
- Original Message - From: Tim MacDonald [EMAIL PROTECTED] t = call(#undefined, the actorList) put t -- Null (This is one way I know of producing this value -- I'm sure there are others) put ilk(t) -- #void [snip] Is this an example of a dirty void? Or just another lingo idiosyncracy? Interesting, you could be onto something here. I thought NULL was just a synonym for VOID, but not so it would seem. It's interesting that ilk and voidP() give different results. Here's my own version of your tests: a = call( #undefined, [] ) put a -- Null put voidP(a) -- 0 put ilk( a, #void ) -- 1 put a=true -- 0 put afalse -- 1 ( I wonder if you get the same results on the Mac? ) I don't know whether the difference between ilk and voidP is intentional so people can distinguish VOID from NULL, or if that is a bug in voidP. Certainly it seems a bit strange that the ilk should be called #void if it is not of the #void type. Actually, this result makes me suspect that all 0's is a NULL, and VOID has a different ilk bytecode - either that or VOID has a special integer code, and both NULL and VOID really are of type #void. I say this since it's unlikely that a random return code that is anything other than zero would result in a type such as NULL, it would more likely result in a random number or something. It's much more likely that the default undefined return code is binary zero. One notable point here is that Kerry's fix would not work in this case, because voidP does not work. You'd need to use this instead: if( ilk( nullVar, #void ) ) then nullVar = false - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Re: void and stuff
- Original Message - From: [EMAIL PROTECTED] This kind of issue would be solved if Macromedia gave us decent exception handling, so that we could stay in the scope of any anticipated errors when and where they happened without being catapulted into the nebulous world of alerthook, which pops the entire call stack. (Does anyone ever use the alertHook?) Christoffer has a try/catch object in his files area at openLingo (www.openlingo.org). It's a start, but it's not perfect. AFAIK, it only works properly in projectors. Personally, I would like some form of exception handling built into Lingo, but not like the clunky try/catch blocks in Java that make a simple 1 line function into about 10 lines of exception handlers. Perhaps something more like VBScript's on error... although I don't really know how good that is because I don't do much VB. Still, the main thing is that for the most part when scripting, errors can simply be ignored. As long as we know that VOID = 0 = false, and functions return VOID on error, then we can usually write code that doesn't care about the difference between VOID and 0. The only reason we would care is if we have a specific reason to care, or after this thread, because it seems that the aforementioned does not hold true in Lingo. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
- Original Message - From: Kerry Thompson [EMAIL PROTECTED] Then you will get different results depending on the apparently random output from this function with a single known input. That's not good from an engineering POV. Ah, but you will get consistent results with your code. You're testing for void first, just like I found I needed to do. No, that's not the problem here. The problem is that value() *randomly* returns 0 or VOID, when it should clearly always return one or the other (it doesn't matter which, as long as the same input gives the same output). Secondly, I am quite aware of the exact nature of VOID. VOID is a special type/value. The VOID /type/ can have one value: VOID. The /value/ VOID is numerically equivalent to the value 0 for the integer type, or 0.0 for the floating point type. These are not /identical/, because the types are different. However, there is implict casting between all 3 types for all arithmetic and logical operations in Lingo. As I said before, 0 = 0.0 = VOID. However, 0 !== 0.0 !== VOID. VOID is not the absense of a value at all, it is a perfectly valid value. The only problem with that statement is that in practise it can cause problems with list properties whose values are set as VOID since Lingo doesn't have any good functions to /distinguish/ between that condition and the complete absence of the property. I'm talking about the fact that getaProp returns VOID for non-existant properties, and this is sometimes the only way to check. This could be solved by the addition of an isAProp proplist function, but its not something that can be done in Lingo, it must be added to the language. BTW, you should not confuse VOID in Lingo with void in C: they are quite different. In C it /does/ indicate the absence of a value (but don't confuse a void pointer with a null pointer either, they are also quite different). However, the C void keyword has two possible and quite different meanings, depending on the context, but there is no VOID type, nor is there a VOID value. Regarding your bug, I'm *very* surpised if MACR marked: if( VOID ) then -- Never execute this code -- But it runs on Windows end if as NAB, because it clearly is a bug, if the above statement were true. However, it doesn't evaluate as true on any Windows system I've ever tested (I even double checked on mine just now to be sure). I expect that the bug actually lay in your conditional expression, which may not have been returning VOID as you believe. I'd be interested to see the /exact/ conditional expression though, if you still have a note of it. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l xtraP( instance ) ?
- Original Message - From: Daniel Plaenitz [EMAIL PROTECTED] I could test for string( instance ) contains Xtra but that seems to consume a lot of cpu cycles It could also be buggy in the extising form - what about a script whose name contains Xtra, or Extra? I don't think there's a better way though. Rewrite it as if( string(instance) begins Xtra ) instead of using contains. It should be slightly faster too as it doesn't have to scan the entire string, but not much, certainly nowhere near as fast as a predicate. If you're worried about the performance of this, I would ask why you need to know that the object is an Xtra in the first place, and why don't you already know anyway? There may be a better way to do what you want without the test. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l xtraP( instance ) ?
- Original Message - From: Daniel Plaenitz [EMAIL PROTECTED] because: put x.count -- 0 put y.count script error put getaProp( y, #count ) -- Void (at least, I think it works with Xtras - I've never actually tried) - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
[ Long email warning - some may find the low-level programming stuff at the end interesting, others may want to avoid ] - Original Message - From: Kerry Thompson [EMAIL PROTECTED] As I said, the debate became rather acrimonious, to the point that some people, including MM engineers, left the list. Several people on the list now were around for the brouhaha--Alex de Franca remembers ^_^ I'm sure it was due to the shame of having to follow the party line on this whole VOID=true business. That *is* what it comes down to - they are saying that VOID is undefined when that is simply not true, except in a buggy language implementation. I might check the documentation Don't bother. Your search will return void. :-) True, except when it's NULL ;-) x=NULL put x -- Void AFAIK, NULL is simply a constant representation of the VOID type - the same as TRUE in Lingo is actually the integer 1 and FALSE is the integer 0. Some other loosely typed languages such as PHP actually have a boolean type, so FALSE !== 0. TRUE is a more complex one than =1 or != 1, since TRUE is generally represented by -1 since that is the bitwise inverse of FALSE (0). At least, most C programmers do it that way, more out of convention than anything (much like the convention to use the variable name me in Lingo instead of the more traditional this in all other OOP). I can't reproduce it now either, on the systems I have. I wish I could. The bottom line, though, is that you should check for voidP before doing any Booleans, at least in Lingo. That's a shame. At the very least, it is undesirable behaviour. I would still regard it as a bug, even if Macromedia were too lazy to fix it that week. What should happen in any aritmetic expression is that types should follow a known order of implicit up-casting. For instance, VOID upcasts to int, and int upcasts to float, wherever required to do so by an arithmetic or logical operator. Not doing this somewhat limits the usefulness of any scripting language. There is no point in a scripting language that /requires/ type checking before every statement. You might as well write all your code in C or Java because at least then you'd know what the types are in advance. In another post, I mentioned that void was the absence of a value, and you said that it is a specific value. Actually, I think we're both correct. I don't have my Kernighan Ritchie handy (we just moved, and boxes are everywhere), but C and Lingo do treat it differently. I was going by Macromedia's documentation, which says voidP determines whether the variable specified by variableName has any value. Since this is a Lingo list, I was referring to void in Lingo. You're right in other contexts, though. Maybe we should all go back to twiddling bits in 6502 assembler. - From: Howdy-Tzi [EMAIL PROTECTED] But void is not zero, any more than, in C: int foo; makes foo a valid variable. You don't know what's in it and testing it without first stuffing a value into it: int foo = 3; can lead to all kinds of weird problems. Just to get the record completely straight on the different meanings of void or VOID - the following is a lengthy and technical discussion of points that you may all be aware of, but may also clear up a few ambiguities: In C everything is typed. So, the declaration: int foo; Allocates a 2-byte block of memory and foo is set as a static pointer to that memory location. However, what that statement does not do, is put any specific value in the 2-bytes of memory, so at runtime it could contain anything. This is known as undefined - that is *not* a specific value (unlike VOID), nor is it the absence of value either, it is the absence of prior *knowledge* of what the value should be. int foo = 3; Does exactly the same, except that it always starts with 0x0003 in the 2 bytes set aside for the variable foo, so we know what the value is. The keyword void in C is also unlike VOID in Lingo. In C, this indicates an unknown, or don't care value. There are 2 possible uses, one to indicate that a function does not return a value, and another which is the void pointer: void *voidpointer = 0xb800; This example is a base-address pointer to the colour text mode video memory on the PC. Pointer aritmetic on a void pointer is performed in bytes, so *( voidpointer + 100 ) means the value at the 100th byte in the video memory. However, since the pointer is void, we don't know how many bytes to read from that base address, so some casting is required (often done implicitly by the compiler when the pointer is assigned to a variable, but it depends on the strictness settings). This is different to typed pointers like: int *intpointer = 0xb800; in which pointer arithmetic operations are automatically multiplied by the size of the type. In this case sizeof(int) = 2, so (int)*( voidpointer + 100 ) is precisely equivalent to *( intpointer + 50 ). Internally that compiles into (int)*(
Re: lingo-l escape key code
- Original Message - From: Kerry Thompson [EMAIL PROTECTED] Does anyone know what the ESC keycode is? Where can I find a list that corresponds to teh numbers Director uses? Sorry - In my previous response I sent the ANSI table I should have sent ASCII (right Kerry?) so the number you want is 29 Ummm... actually, escape is ASCII 27. And ANSI 27. Just to confuse matters, keyCodes are neither ASCII, ANSI, nor are they the same as the hardware scancodes sent by the keyboard. They use some F!'d up system that Macromedia smoked up one day, the reference is here: http://www.macromedia.com/support/director/ts/documents/keycodes.htm Notably, ESC isn't in that list, but a quick test reveals it's keyCode to be 53. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
- Original Message - From: Kerry Thompson [EMAIL PROTECTED] I stop short of saying it undermines Lingo's credibility, though. It's a known issue, with a known workaround, and just about every scripting language I've used has issues like this. Lingo remains a powerful and flexible language, albeit with some quirks. After all, that's what they pay us those big bucks for ^_^ You mean we can get big bucks for this now? ;-) Actually, I do think it undermines Lingo's credibility, to a greater or lesser extent, depending on how you look at it. As you can probably tell, I like to know how things work, so when I write some code I know it's going to do what I expect it to do. I don't like lots of things being left undefined, just because the Macromedia engineers are too lazy to address what is clearly a bug, so they do a Microsoft a re-label it as a feature. Sorry, but in this case it's not acceptable, and it can seriously complicate what should otherwise be simple code. Scripting languages are for exactly that - writing simple elegant code that reads easily. They are not for writing mammoth chunks of code that explicitly work around every possible bug-causing case - the language itself is by design, supposed to negate the need for all that. You also made the point that we should test for an empty string before passing it to value(), but I don't see why that should be necessary either. Again this comes down the the amount of work we are expected to do in our scripts - really that work should be delegated the the built-in functions, so something like value() should always return a known value, it doesn't matter what, as long as it is consistent. I don't mind the return value being undefined if the input is not a string, but an empty string is still a string, so it's well within the function's working specification. [snip] That corresponds with my experience. I believe I mentioned that I found the problem in a function call. This is way, way oversimplified, but it was essentially this: x = someFunction() if x = FALSE then -- do something else -- do something else end if on someFunction --do something --but don't return anything End Ah, so rather than returning VOID it actually doesn't return anything - that's a bit different. You are basically returning an undefined value, which may or may not be VOID. Having said that, I believe Lingo does normally put a VOID in as the return value for you, which is really what it should do to make everything nice robust - no-one want's to deal with undefined's in a scripting language, which is why we have VOID in the first place. Anyway, if that is where the problem is creeping in, there is still no need for dirty VOIDs the be handled incorrectly. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
- Original Message - From: [EMAIL PROTECTED] Will someone please decide once and for all what value(void) will return? I've got three different results, all on the same machine. For the rest of the list; anyone who can't see the JPEGs, the question should have been what is the value of EMPTY?. The problem in the screenshots has nothing to do with value(VOID), which AFAIK always returns VOID. Also, there are only two different results shown. These are as follows: -- Test 1: put value( ) -- Void -- Test 2: put value( ) -- 0 Smells like BUG to me. I tried a test movie that runs this line of code continuously. Before saving, it always returned VOID. After saving, it always returned 0. Anyone encountered anything similar, or got different results? FWIW, I don't try to rely to much on anything that is returned by value(), but it would still be nice to have a conclusive idea of what it returns for empty strings and pure whitespace strings, under what circumstances. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
- Original Message - From: Colin Holgate [EMAIL PROTECTED] Except that you can't see that the first one is option-space. The message was apparently written a few days ago, but perhaps this is a developing April Fools joke. ??? My post was written yesterday in response to Pranav Tab's posts (also dated April 1). Neither myself nor Pranav are using Macs, so we don't have option keys, and even if we did, you'd be able to see *something* not just an empty string (I assume option+space produces an extended ASCII character that looks like a space) Note that there is *no* space in the string, it is an empty double-quotes . It's definitely a real bug, but it seems to be intermittent. I just tried to reproduce it again and this time I just get 0's, no VOID. It's weird. I have to say, it's not exactly a critical bug, but it's definitely not an April fools joke. It's now April the 2nd and 17 minutes, so if it were a joke I'd have to tell you - that's the law. I did manage to reproduce the problem here earlier though, so if Pranav is making it up, he's doing a really thorough job... - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
- Original Message - From: Daniel Plaenitz [EMAIL PROTECTED] Even subtle details may matter here. Therefore, the above notation has to be corrected. Pranav's example (http://www.geocities.com/pranav_negandhi/freaky_chakra_2.jpg) reads: -- Welcome to Director -- put value() -- Void Well, I don't think that's important. If you look at the way I reproduced Pranav's original results, I typed my own code into an exitFrame handler and ran it. It continually returned VOID. Then I saved it, closed it and opened it again, with *no changes* either to the movie, my version of Director, or my system - that time it gave 0's. I have not since been able to get it to return VOID, but the *exact same code* gave different results at different times with the exact same configuration. A bug is one thing, but an intermittent bug is somewhat more worrying - it suggests the bug is not related to the value function so much as the way the reference to the static string value is handled, which could have wider implications. Most likely what we are seeing is a problem in the reference table where two identical but separate strings are accidentally given the same reference, or two strings with the same reference are incorrectly believed to be two identical but separate strings. That could potentially lead to inexplicable crashes that cannot be reproduced easily, as well as bugs like the one we are seeing. I can't think of anything else that could cause it, other than code with something really stupid in it, like: if random(100)2 then return silly result I don't think that's likely though. One thing that may be important is whether or not your code is the first thing to ever refer to the static string . That can be the difference between a reference to an existing string, or the creation of a new one. Because the value is static, there is nothing to say that Director is creating a new string each time, it may simply be recycling references, which is where the sort of bug I suspect may be causing this could creep in. I suspect that saving the movies sorted out these static references, which produced the differing results that I saw. I'm going to try reproducing the result again later after a cold boot to see if that makes a difference. There may be things hanging around in memory that make a difference. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
- Original Message - From: Colin Holgate [EMAIL PROTECTED] I guess I imagined it then. The JPEG looks like there's something between the quotes, more of a than a . I can't exactly match the font or size, but screen shooting it and comparing what I can type still makes it seem like there's a gap, but not as wide as a regular space. Try setting the font to Courier New which is the font for the message window on the PC. I don't know what it is on the Mac, but the reason for the extra space is that Courier is fixed-width, and a is somewhat thinner than an M. It didn't even look odd to me, so I can only assume the font is totally different on your system. Incidentally, one of the reasons we all generally use fixed-width fonts for code is that you can easily tell that there is no space. Simply look at the characters immediately above the quotes and you will see that there are exactly two in the same horizontal space. Since all the characters are vertically aligned in a grid-like fashion, there cannot be an extra character between the quotes, or the quotes would span the width of 3 characters. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
- Original Message - From: Kerry Thompson [EMAIL PROTECTED] In some cases, someCondition could be Void. On the Mac, that boolean evaluated to FALSE. On Windows, it evaluated to TRUE. Are you sure it was always evaluating to VOID? Perhaps the problem was that it was evaluating to something else because of some function or whatever that gives a different result on each platform. Generally, using the = operator: 0 = 0.0 = VOID All of theese are different types, but each has a value that is considered equal to zero. That said, it's always a good idea to make sure your expressions actually evaluate to booleans, rather than using any shorthand, which I normally do like so: -- old if( someCondition ) then ... -- new if( someCondition false ) then ... This way, VOID, 0 and false will all evaluate as false, and everything else will evaluate to true, which is the expected behaviour if you are used to C/JavaScript, etc. Since Lingo isn't too clever about handling non-booleans in expressions, you will get a script error if the type is anything other than a float, integer, or VOID, even though logically any such thing should simply evaluate as true. The only problem with this is that most people would expect to evaluate as false, but it doesn't. What is also a shame is that Lingo doesn't have an equivalent to the === operator for exactly equal and !== for not-exactly-equal. These are found in PHP and a few other loosely-typed scripting languages and allow you to do type-safe comparsions. Mind you, you can get the same effect in lingo with a couple of simple functions: on eq( a, b ) if( ilk( a, ilk( b ) ) ) then return a = b else return false end if end on ne( a, b ) if( ilk( a, ilk( b ) ) ) then return a b else return true end if end This way, eq( 0, 0 ) will return 1, but eq( 1, 1.0 ) will return 0, eq( 0, VOID ) will return 0, etc. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
- Original Message - From: Kerry Thompson [EMAIL PROTECTED] I think it has more to do with trying to use a void for anything useful. There have been long, sometimes acrimonious, threads about this. You miss the point here. If the value returned is sometimes VOID and sometimes 0, then if you do: if( voidP( result ) ) then -- do something else if( result = 0 ) then -- do something else end if Then you will get different results depending on the apparently random output from this function with a single known input. That's not good from an engineering POV. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The value of void?
- Original Message - From: Daniel Plaenitz [EMAIL PROTECTED] the *exact same code* is only what you see. I have had at least one case where directors symbol table was influenced by snippets of code that had been *deleted* but *still* were part of the .dir file. Invisible from within director. Visible as a string when examining the .dir with a hex editor. Valid in defining if symbol(Paul) would return #paul or #Paul. Yes, that's a known issue. Director always saves the symbol table and does not delete obsolete entries. The point in this case is that it was not changed: only saved, closed and reopened. I fully expect that there may have been changes to the internal static references (no symbols involved though) due to saving, but there have been no instances of stuff being added and then deleted. I simply created the test movie from scratch, although I have not since been able to reproduce the results, even after cold booting a couple of times. What I suspect is going on (and this is all conjecture based on the way other languages such as C++ work) is that static strings are normally stored in a resource area that is similar in many respects to the symbols table. So when you see in code, it might as well be a symbol called #, because it refers to a single chunk of memory set aside for each occurance of that static string. There is generally only one copy of each identical string to save space in the .exe file. So, you might have two bits of code with the static string Hello, but unless you actually modify one of them, they will both point to the same physical memory location. What may be happening is that these references are getting mixed up and the value function is internally comparing the wrong string references. FWIW, the only thing I have in my movie is an unnamed frame-loop script containing: on exitFrame me a = value() put a go to the frame end Rather than post the movie, it might be better if people try creating their own from scratch, as my saved movie is consistently outputting 0's now. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Image size
- Original Message - From: Bertil Flink [EMAIL PROTECTED] Or use Save for Web and choose png24 + transparancy (= 32bit). Seems to work OK so far. I haven't compared PS FW png:s side-by-side yet We are told that Fireworks is better, because of the Photoshop precalulated alpha issue (there's a technote somewhere, but I can't find it). This difference was definitely noticeable in Photshop 5. The technote states that PS6 still uses precalculated alpha, but I haven't been able to tell (by looking) that there is anything wrong with PNGs produced using save for web in PS6. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Text fields can wrap on a space?
- Original Message - From: Adam [EMAIL PROTECTED] Also, does anyone know the best way to place the cursor in a field using lingo? The only way I have found so far is to set the 'selection' property of the field to an array of two equal numbers, such as [2,2]. That's about right, except that it only works with text members. For fields, there are the globals the selStart and the selEnd, which do much the same thing. What works with a field does not work with a text member and vice-versa. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Embedded fonts
- Original Message - From: Phil Gross [EMAIL PROTECTED] I think you need to be careful doing this. IIRC, if you open the font cast member again, Director tosses the name you previously gave it and sets it back to the original font name followed by the *. Leaving your text using a non-existant font (missing). The safest thing to do is accept the default name (the one with the *). I normally give the embedded fonts completely different names, such as _plain, _strong, _title, etc., which correspond to the pupose rather than the specific typeface. I always start my names with an underscore rather than an asterisk, but that's just force-of-habit as I use that for a lot of other things and prefer the way it looks. There are two main advantages to this approach. Firstly, if the job needs to be rebranded at any time, it is a simple question of re-embedding different fonts with the same names to fit the new design (usually). Secondly, it's easier to quickly spot which text is set to the embedded version and which is not, as the names are completely different. I've been doing it this way for a while and never had a major problem - but you are correct about how Director changes the name if you re-open the font. This can be really annoying (especially the first time), but it's just one of those things you need to watch out for and remember to change the name back if you make any changes. If Director does lose an embedded font because of this, you need to rename it correctly, then close and reopen the project. An annoyance yes, but not a life-threatening bug. Still, it makes me prefer not to mess with any font after it's been embedded unless there's a very good reason to do so. It's very easy to forget. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
lingo-l X-Post: Req: Performance testing
I wrote a little blur filter a while ago and decided to use it in my current project. Unfortunately, this is a total rush job so I have virtually no time for testing, and I was hoping I could get some feedback about the performance of my filter on different platforms. BTW, I will be adding the filter to openLingo soon, along with (hopefully) a generic, high-speed gaussian blur filter (any size) which I have yet to code, but I have already spend a couple of days working out the theory for it. There is no source for this ATM, but it is definitely coming as soon as I've tidied up the code a bit. The demo: http://www.killingmoon.com/temp/ If people could email me (might as well do it off-list to save spamming everyone else) with the spec of their system (CPU, memory, video chipset, VRAM, OS) and let me know which of the 3 filters run OK (or not) on their system, that would really help me work out what the approximate minimum requirements for each transition are. TIA, - Robert PS: The transitions are listed fastest first. The quickbur is not 100% accurate, but uses 8 copypixels operations. Blur is an accurate blur filter, requiring 12 copypixels. [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l X-Post: Req: Performance testing
- Original Message - From: Colin Holgate [EMAIL PROTECTED] It crashed Netscape the first time I tried it, but now it works ok. It's slightly slow, but quite tolerable. 450 MHz G4, Mac OS 9.1. Hmm, might be a preloading problem under Netscape. I had a problem initially where the images weren't being loaded before I used them, which was causing a crash. I fixed that by using a dummy frame, with the members on the stage, and forcing a preload before doing any of the imaging Lingo. I'm not too worried about fixing that at this stage as the same problem shouldn't occur in a projector. From the results I've been sent so far, it looks like I can get away with the quickBlur if I say the minimum spec is P3/500. I think we can live with that. This CD will be PC only, but it's useful to know how the Mac compares for future reference. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l X-Post: Req: Performance testing
- Original Message - From: Robert Tweed [EMAIL PROTECTED] From the results I've been sent so far, it looks like I can get away with the quickBlur if I say the minimum spec is P3/500. Actually, I've just realised how easy it will be to do a speed test and fallback routine, so slow machines get the fade transitions, and you only get the blurs if your system is fast enough to handle it. Generally I'll be using quickblur, as the fault is only noticeable when there are large areas of solid colour (the quickblur actually has a slight bias in one direction, but you can't see it on a photo). There is an outtro on a solid white background where I was going to use the slow blur, but I can make the image smaller to compensate. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Carriage return using numeric keypad ENTER key
- Original Message - From: Howdy-Tzi [EMAIL PROTECTED] put RETURN after sprite(the currentSpritenum).member.text ... That returns an error. Dot syntax and put after do not get along. Actually, it's not that, it's yet another odd quirk. Full verbose syntax doesn't work either, you need to drop the .text part. This works perfectly: put RETURN after sprite( me.spriteNum ).member That is definitely the correct syntax for a field, but it also happens to work with text members, despite the fact that it shouldn't work without the .text. BTW, put...after is [very] significantly faster than using the concatenation operator, so should be used instead whenever possible. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l on hyperlinkClicked
- Original Message - From: Howdy-Tzi [EMAIL PROTECTED] Actually it's a quirk, so no, it's won't be documented. That's because Director would cost at least twice as much, and there would be far less trees left in the rainforests if they had to use enough paper to document all the quirks ;-) - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Text/Integers?
- Original Message - From: Alex da Franca [EMAIL PROTECTED] I don't know exactly how to test this with lingo only You could test for this easily by simply timing how long it takes to call a function with strings of varying lengths (say, 1 char, 100 chars and 1 chars) one function returns the string untouched, while another does something with it's local copy. You should see a dramatic difference in the timings when the string is physically copied compared with the reference passing. You should not see any difference in times for different lengths of string when passed by reference, but when passed by value, the longer strings will take more time to copy. FWIW, Delphi has used the same method you describe to pass strings since version 2, so it's fairly likely that they could have done the same thing with Lingo. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l symbol(s01.mp3) vs. symbol(01.mp3)
- Original Message - From: Charlie Fiskeaux II [EMAIL PROTECTED] yes, it is automatically converted to a symbol. No it isn't. It remains exactly as whatever string you use, including any character that are illegal in symbols. I use it all the time with postNetText to emulate HTML forms. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Methods for converting longInt from binary files?
- Original Message - From: Andreas Gaunitz [EMAIL PROTECTED] I'm not sure how the floats are represented though. Do a search on Google for IEEE 754. I'd suggest a link, but there doesn't seem to be a single one that covers the standard completely. You can't just look it up on the IEEE website either, annoyingly, you have to pay them for a printed copy of the standard (I really hate that). However, as I mentioned before, you'll have a hard time getting direct binary access to floats in Lingo without an Xtra. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l barcode reader and other devices
- Original Message - From: Rodrigo Peres [EMAIL PROTECTED] Does anyone knows if it's possible interact director with devices like barcode reader and credit card machines? How it can be done? there's anybody else around with crazy ideas like this? :-) Barcode readers (at least, like the one I used to have) are really easy - they simply emulate the keyboard and type the barcode value (preceeded by a special keycode that tells you it's a barcode) into the currently selected field or whatever. In the case of serial devices, you'll want a serial IO Xtra such as serialXtra to communicate with the device. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l barcode reader and other devices
It's exactly the same as the one I mentioned - it just emulates a keyboard so the application can't tell the difference between the barcode reader typing something, or the user doing it on the keyboard - except that it's usually set up to send some special characters before the barcode so it can be routed to the correct field automatically. For example, at a former place-of-work where barcodes were used, we would write stupid messages, encode them as barcodes, and print them out. Then, when someone else runs a barcode reader over it, the message will appear in notepad (or the stock control system, etc.) No special software is needed. - Robert - Original Message - From: Mike Warner [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, February 06, 2003 6:05 PM Subject: Re: lingo-l barcode reader and other devices Wouldn't you still need an xtra to listen to the USB port? Does the DirectCommunication xtra do this? Mike Message: 4 Date: Thu, 6 Feb 2003 11:08:19 -0500 To: [EMAIL PROTECTED] From: Colin Holgate [EMAIL PROTECTED] Subject: Re: lingo-l barcode reader and other devices Reply-To: [EMAIL PROTECTED] Does anyone knows if it's possible interact director with devices like barcode reader and credit card machines? How it can be done? there's anybody else around with crazy ideas like this? :-) Mostly ignore the other two posts. You can get USB barcode and credit card readers, they plug into a USB port (on any platform that supports USB) and work right away, without any Xtras. The numbers coming from a barcode exactly match what you can read on the label. You can configure the barcode reader to put characters before or after that, so for example you could append a return character, and === message truncated === __ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!] [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l OT: emoticon madness
- Original Message - From: Kerry Thompson [EMAIL PROTECTED] Localization note: the Japanese have embraced e-mail emoticons with a vengeance. Check this out: http://club.pep.ne.jp/~hiroette/en/facemarks/body.html#character They aren't the only ones: http://www.chatropolis.com/emoticons.html :-F - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Basic ?
- Original Message - From: Meiky - [EMAIL PROTECTED] if my script looping forever, if there any shortcut to stop it? If you mean in the code, that depends on the loop. If you mean to stop the movie when the stop button doesn't work - press ESC. Won't work if the exitLock is set to true, so don't set this during authoring unless you have to. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The long date
- Original Message - From: Mendelsohn, Michael [EMAIL PROTECTED] But FWIW, Howdy-Tzi...what does IIRC stand for? AFAIK, it's internet internet relay chat, right? IRC - Internet Relay Chat IIRC - If I Recall Correctly FWIW: http://www.acronymfinder.com/ - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l The long date
- Original Message - From: Buzz Kettles [EMAIL PROTECTED] why aren't these things documented? Well, actually that call is a good example of undocumented Lingo. [snip] my understanding is that this is documented Well, it's in the help - that's about as documented as it gets. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Imaging vs. Sprites
- Original Message - From: [EMAIL PROTECTED] In our present version, I used imaging lingo to draw the cells, but found that the whole thing comes to a grinding halt after a few minutes. The issue probably isn't imaging Lingo so much, as lack of proper optimisation. It's hard to say what you might be doing that is causing such poor performance (you're not writing to the stage.image for each sprite, are you?) but imaging Lingo should be capable of at least equalling the performance of individual sprites, and is often faster. As for your second issue, of detecting click positions, this should actually be an area where you can improve on performance, compared with sprites. Since many of the sprites will be arranged in a uniform grid, you can use a simple caclulation to determine which one the mouse is over. This saves doing a bounds check on every sprite, which for a large number of sprites is quite time consuming (assuming no other optimisations are used, although Director probably does optimise this quite a bit anyway). It's hard to say much more about this without knowing more about what your code is doing. BTW, you might be better off asking about this type of thing on DirGames-L. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Imaging vs. Sprites
- Original Message - From: [EMAIL PROTECTED] Trapping interactions such as rollovers will be easier in sprites with the mouseEnter and mouseLeave handlers. I'll need to do a continuous checking for that with imaging lingo. Just remember that easier isn't necessarily faster. If you aren't doing the checking, then Director is having to do the checking. OK, Director's internally compiled code is going to be a bit faster than Lingo, but as I pointed out, you can take shortcuts that Director might not know about. I'm a little less keen on using sprites since a cell can contain any number of objects. It's much easier to paste them all into a single image than having a sprite for each object. Again, this is a good reason to use IL. You may even be able to introduce more optimisations around this, particularly if the content of some cells doesn't change much. I was also considering a hybrid solution, using imaging and sprites. Each cell object has its own sprite and image object. I can attach behaviors to the sprite and let a global appearance manager retrieve the image of each cell object to paste onto a common bitmap member or the stage. The canvas bitmap can be placed in the topmost channel without any behaviors attached. So I don't waste cycles checking for interactivity, while getting fast drawing routines. I expect that approach will simply give you the worst of both worlds, plus a lot of extra headaches. I'd do it one way or the other, and from your description, IL sounds like the better choice. Unfortunately, Director just isn't really all that fast, but you can push it to get a reasonable performance out of it. Given the complexity of what you are doing, I expect using sprites will be just as slow, but you will lose a lot of the potential to add more optimisations as you go along. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l 3d forum?
- Original Message - From: Meiky - [EMAIL PROTECTED] anyone knows forum or mailinglist address for 3d Director 8.5? Newsgroup: macromedia.director.3d Dir3D-L: http://nuttybar.drama.uga.edu/mailman/listinfo/dir3d-l Also, DirGames-L if games-related. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l kazaa
juan colon wrote: is it possible to make something like Kazaa, edonkey, winmx in director. if this is possible anyone know were i can look into. I doubt it, but you could have a look at the source for Gnucleus (www.gnucleus.net) if you're interested in P2P. At one time, I was thinking about trying a port myself, to learn more about P2P protocols, but I don't think Lingo's networking is low-level enough to be able to implement it. Possibly with an Xtra or two though. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l kazaa
- Original Message - From: [EMAIL PROTECTED] Why not coupled with the MUXtra? Possibly, but if you're implementing a Gnutella client, you need to comply with the Gnutella protocol. I haven't really had a chance to play with MUX properly yet, so I have no idea whether it is low-level enough to replicate the protocol, or if it will only work for a completely new P2P system based on MUS (probably). I wouldn't recommend anyone go down that route if they want to make something that will actually be a practical file-sharing client, since you'd only be able to share with other people running your application. As a test, maybe; but you'd have a hard time building up a user-base on a completely new network nowadays. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l randomize
- Original Message - From: Roland [EMAIL PROTECTED] I do have 4 text labels and 4 small graphics (which do belong together) that I would like to place on the stage at random. Could someone give me a pointer on how to approach this? sp1 = sprite( 1 ) sp2 = sprite( 2 ) sp1.loc = point( random( 100 ), random( 100 ) ) sp2.loc = sp1.loc + point( sp1.rect.width + 5, 0 ) This places sprite(1) somewhere random, and puts sprite(2) 5 pixels to the right of sprite(1). This does however, assume that both sprites have their regpoint at (0,0), otherwise sp2 may be misaligned. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l A new Mothership?
- Original Message - From: Agustín María Rodríguez [EMAIL PROTECTED] If Microsoft takes over Director, do you think they will make them take out the Bill is Evil button-style feature? I´ve heard (always rumour of course) that´s exatly the reason why they´re taking over MM. It will be replaced with a new easter egg: All your Lingo are belong to Bill. Resistance is futile. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l MX opinion!!
- Original Message - From: Fraser Campbell [EMAIL PROTECTED] I don't think everyone agreed - has it been pulled? http://www.macromedia.com/software/director/special/trial/ Yes, it has been pulled. Apparently there were too many bugs in the trial version that was released. Hopefully they'll get a new version up soon. The full version does not have the bugs that were in the trial version (I'm sure it has it's own bugs though ;). - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l MX opinion!!
- Original Message - From: Daniel Plaenitz [EMAIL PROTECTED] Yes, it has been pulled. Apparently there were too many bugs in the trial version that was released. Hopefully they'll get a new version up soon. The full version does not have the bugs that were in the trial version (I'm sure it has it's own bugs though ;). This astonishes me. Did you compare the full version and the trial? I would rather have expected that the differences between the trial version and the full mainly relate to testing the time bomb on start-up. Not personally, I'm relaying information from another group. Seemingly a number of bugs have been reported in the trial version that are not present in the full version. That's all I know, except that it's definitely been taken down, despite being available yesterday (I got my copy). Presumably what has happened is that the trial has been built from an older release-candidate beta version instead of the final release version. I'm just guessing at this, but I can't think of another explanation (unless the time-bomb code actually interferes with the main code in some way, which seems unlikely). - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l To open a new browser window with gotonetpage
- Original Message - From: Charlie Fiskeaux II [EMAIL PROTECTED] _new isn't valid HTML. Try _blank or new and see if either of those works. Actually, what happens is if you don't specify an existing target you get a new window with the name specified. This is why _new has become popularly believed to be correct: it works, but only the first time it is used. The same would apply to new if you used that. The problem is that with any such name, when you target it again, the existing window is overwritten with the new content. The correct target to create a new window every time is _blank, nothing else. See the part about magic target names for the list of special targets, which were introduced along with frames, in Netscape 2: http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/target.html - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Irregular shape of rollover 2
- Original Message - From: Buzz Kettles [EMAIL PROTECTED] At 5:53 PM -0500 12/9/02, you wrote: Can't you just set a vector sprite's blend to 0? Yes - that works, but I automatically rule out blend = 0 for vectors since they don't disappear when they play in 16 bit color. Dunno if this has been suggested already, since I've mostly been ignoring this thread, but instead of using invisible members, you could do the polygonal hotspots entirely in Lingo without using any sprites. Unfortunately, code like that isn't for beginners, but if you can keep all the polygons convex then it's still /relatively/ simple. Much of the code required has been posted before IIRC, so it shouldn't be too hard to find an example. I wrote some code for intersection with any polygon (convex or concave, any number of points) a while ago. Unfortunately, although that code was just good enough to scrape by at the time, it's very messy/buggy (it was seriously rushed) and I wouldn't be happy about releasing it. I'm sure someone else out there already has some better code, even if it only does triangles, it shouldn't be a big deal to manually break the image-map down into convenient sections. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Any mySQL guru's on the list?
- Original Message - From: Jeremy [EMAIL PROTECTED] Finally, heres the issue I am having. Since the spawngroupID field in the database I am inserting into is not an auto_increment field Off the top of my head, I think this should do it: SELECT MAX( spawngroupID ) FROM whicheverTable You should probably make it an auto-increment if possible, just for speed. Still, if not, at least make it a unique indexed field. I have no idea what sort of performance you should expect for a largish table with such a query, but it's probably a fair bit slower than an auto-increment field. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Flash Sprite + puppeting
- Original Message - From: Brad Hile [EMAIL PROTECTED] I may be completely off track here but could you use an initialising script on the flash sprite to force the update or in fact to control the sprites member - something like: I don't get the basic principle of what you are suggesting. Could you explain a bit more please? The problem with the score is that there is no way (in code) to *tell* the score what member type is has in a particular sprite channel. Setting the type property simply sets the number (IIRC, anyway) it doesn't actually force the stage to change its internal properties. The only thing that does seem to cause the stage to update is a playhead move. updateStage doesn't work 100% properly either, in case you're wondering. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Flash Sprite + puppeting
- Original Message - From: Charlie Fiskeaux II [EMAIL PROTECTED] Why do you have the Flash sprite puppeted? I thought that since automatic puppeting came about, manual puppeting was no longer necessary. In the original post, fraser said that he was not putting the sprite in the stage. That makes it a question about dynamic puppets, which is where there is no sprite in the score, but you puppet the channel and create a sprite on the fly. This is (a) undocumented behaviour, and (b) doesn't work unless you puppet the sprite. Also, contrary to popular belief, there *is* a difference between explicit puppeting and auto-puppeting, so it's by no means obsolete, as you suggest. The difference is that auto-puppeted sprites remain under control of the score. To illustrate this, try creating a tween, then set the locH property of the sprite, without puppeting it. The sprite will continue to be controlled by the score for all properties except locH. OTOH, if you puppet the sprite first, the sprite will completely stop moving until you un-puppet it. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Flash Sprite + puppeting
- Original Message - From: Brad Hile [EMAIL PROTECTED] (The flash sprite is puppeted and the frame is sitting on a go the frame loop with no playhead movement.) A go to frame loop counts as playhead movement. The playhead leaves the frame, then jumps back to it again. The same updates occur as if the playhead jumped to the next, or any other frame. The same should apply to updateStage, but updateStage is not a true playhead move and it doesn't seem to be quite as effective as the latter, with some things anyway. updatestage That'll be why it works. As I pointed out, it's not always 100% effective, but it sometimes helps. Obviously this is one of those cases. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Flash Sprite + puppeting
- Original Message - From: Buzz Kettles [EMAIL PROTECTED] And as you noted if there was no sprite already there to manipulate, one must use old-style puppeting to get the member on stage, creating the so-called 'dynamic sprite'. Of course, even this can be worked around by using placeholder sprites. That's partly true. However, placeholder sprites are very different from dynamic puppets. To clear this up fully, I say there are 3 types of sprite (excluding imaging Lingo): 1 - Simple sprites, or auto-puppets 2 - Explicit puppets 3 - Dynamic puppets (no sprite in the score) (1) is controlled by the score, but can also be controlled by Lingo (to some degree). (2) is completely controlled by Lingo, except that you cannot change the member type*. (3) is completely controlled by Lingo without exception. However, the technique is undocumented and highly quirky. * People often don't realise this about sprites. According to the documentation, you cannot change the member type from whatever is in the score. This is one of the reasons that dynamic puppets are not supposed to work, and why you have to wait for a playhead move before accessing type-specific properties. In practise, if you try to change the member type of a score-based puppet, it will screw up even more than dynamic puppets do. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Flash Sprite + puppeting
- Original Message - From: [EMAIL PROTECTED] has anyone else come across an issue by which you cannot set the variables of a puppeted Flash sprite? I don't generally use Flash at all, so I can only guess... If I put the sprite directly onto the stage then the setVariables command is fine, but if it is puppeted then the setVariables command is not recognised. Any work arounds? The trouble with dynamic puppets (and the big reason they are still undocumented) is that Director sets different sprite properties depending on the type of the member. With dynamic puppets, it does not know what type the member is, so type specific properties tend not to work. This is quite common, and is probably causing the problem you are having with Flash. Imagine trying to call setVariables with a bitmap; it wouldn't work. The problem is that Director does not know it's a Flash sprite, so you can't use Flash specific commands. The workaround is simple, but annoying. Wait a frame. When the playhead moves to the next frame (or jumps back to the current frame) the stage updates the properties of the sprites. Dynamic puppets then begin to act normally as if they had been placed on the stage. This simply means you cannot create the sprite and then call the functions you want. You need to create the sprite first, set a flag to say sprite-x-needs-updating, then on prepareFrame (in the /next/ frame), call a handler that does all the member-type specific updates you require and reset the flag. BTW, remember that dynamic puppets /are/ undocumented, so if this workaroud does not work, you may find that there simply is no workaround. That is unfortunately just the way it is with undocumented stuff. However, I suspect that it will work, as it solves every similar problem I have come across so far with other member types. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l a departure, I'm unsubscribing from the list...
- Original Message - From: Thomas Higgins [EMAIL PROTECTED] I'm here to announce that I am going to be leaving the Director Team for an extended vacation and sabbatical You will be missed, but have a good one. I hope we'll see you back on these lists after your break. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l a departure, I'm unsubscribing from the list...
- Original Message - From: [EMAIL PROTECTED] Tom rocks. His presence will be missed on many lists, and here on the Director team. Now who'll get my chorizo burritos for me in the morning? What does the job pay? What, the job of chorizo burrito runner? I dunno, but it sounds easy. Where do I apply? - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l #bytesTotal
- Original Message - From: Howdy-Tzi [EMAIL PROTECTED] the thing is: How can I get the 'BYTESTOTAL' information of a file WITHOUT having to download or preload this file? I don't believe you can. In order to find out about the file, you've got to touch it in some way or another. I could be wrong but I think you're stuck with that. :\ HTTP includes no method to query the size of a file. Plus, some files will return a content-length header, and some won't, so bytesTotal is unreliable at best. Probably the best workaround is a little PHP script; something like this: ? fname = $HTTP_GET_VARS[ 'f' ]; echo filesize( fname ); ? Then do getNetText( getsize.php?f=images/bigimage.jpg ), etc. You could, of course, extend this simple script to query the size of more than one file in one go, which would be a good idea if you want to load several files since the TCP/IP connection overhead will far outweigh the download time for a tiny script like this. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l sin and cosine
- Original Message - From: mike m [EMAIL PROTECTED] I am trying to make my charactor jump forward, obviously (i think) the sin and cosine command would be used, but i have no idea how this works or how to write it, i cant really find any really useful sites that explain it in such a way either. I wouldn't use sin or cosine. What I would do is to have the left and right speed controlled by the left and right keys. Then I'd have a button that makes the character jump: this only needs to concern itself with the upward movement. This is not realistic physics, but is traditional in games and keeps the controls intuitive. So, to do this jump action, I would start with an initial velocity, say 2 pixels per frame. Then I would apply gravity to this velocity every frame (do this in the exitFrame or enterFrame handler). This will cause the upward velocity to decrease each frame, say by 0.5 pixels per frame per frame (no, that is not a typo) until -terminalVelocity is reached. terminalVelocity determines how fast the character will fall back to the ground under the force of gravity. This should be about 120mph, but it's probably better to go for about 5 pixels/frame or something. Also, every frame, I would subtract the upward velocity from the character's locV, so it moves up (or down if it is falling). If it's falling, I would want to test for collisions with the tops of platforms/objects every frame. If the character hits one, I'd want to reset the velocity property to zero, so it stops moving, and set the locV correctly, so the character is standing on top of the object. To be really smart, perhaps add a little landing animation and/or bounce effect at that point. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l ANN: Director MX
- Original Message - From: Fabrice Closier [EMAIL PROTECTED] i saw DMX wil export dvd, what does this mean exactly? That a projector could be exported as Ready to be burned dvd? No, it's exactly the same as always: you can create DVD-ROM's with Director; big deal. I think the big DVD(r) logo on the DMX page is *very* misleading in this respect, especially since the DVD export Xtra that was available for Director a couple of years ago has apparently been removed from the Market for quite some time. AFAIK, no-one has come up with a replacement, let alone bundled it with DMX. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l ANN: Director MX
- Original Message - From: Thomas Higgins [EMAIL PROTECTED] And what about... gXML = new(XML)? Yup. I chose not to explicitly mention all objects by name, the list is long. Interesting. I take it that this means you could put a stub swf with no content in your Director movies as a factory for spawning XML parser objects that work properly? This might be a good thing... In fact, do you even need an embedded Flash asset to access the Actionscript object library, or can you just drop them into your code wherever you want them, like script Xtras? If so, how many other useful objects are there in Flash that are currently missing from Director, or not working, that this effectively fixes? How does the performance compare to native Director objects, and are all the features generally compatible with Lingo (i.e., are there any datatype conversion issues, etc.)? On a related topic, one of the biggest questions I want answered about the new tighter integration of Flash is whether we can now have as many Flash sprites on the stage as we want without instantly crippling performance. For instance, if we wanted to replace all our textboxes with Flash sprites for Unicode support, would it work well enough to be practical? - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Director databases
- Original Message - From: Jeremy [EMAIL PROTECTED] Anyone know of a cheap/free method of communicating to mySQL databases with director, and/or some tutorials? Thanks If you are talking about remote databases, then a good starting place would be www.shocknet.org.uk. You can use PHP, which works rather well with MySQL and is free. No Xtras are required in Director either. Local databases might be a bit more tricky and would almost certainly require an Xtra; never tried that though. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l advice on parent script location
- Original Message - From: Brad Hile [EMAIL PROTECTED] Is it better practice to locate parent scripts in linked casts In short, yes. There is no major drawback to this method as far as I am aware. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l advice on parent script location
- Original Message - From: Brad Hile [EMAIL PROTECTED] Robert Tweed wrote: Is it better practice to locate parent scripts in linked casts In short, yes. There is no major drawback to this method as far as I am aware. Excellent, that was the answer I was hoping to get! thanks Robert. BTW, one minor thing to watch, if you are using external casts with Shockwave. Casts containing scripts should be set to load before frame one, instead of the default of load when needed. Otherwise, the scripts don't work. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Definite Bug in IML32.dll/DirAPI.dll v8.5.1.104
- Original Message - From: roy crisman [EMAIL PROTECTED] I'm pretty sure Tom also mentioned using the wish list as a bug reporting listfinding that address took enough time, you mean i've got to go much around their site looking for a bug-report address, too? It is the same. There is a form-mail page here: http://www.macromedia.com/go/wish/ [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Definite Bug in IML32.dll/DirAPI.dll v8.5.1.104
- Original Message - From: roy crisman [EMAIL PROTECTED] Last week I installed the 2 new Networking Xtras, and the 2 new DLL's (IML32 and DIRAPI) in my Director 8.5.1 PC Win2000 developing environment. Yeah, you shouldn't do that. The files were released to fix a bug in Shockwave that does not, and never has, affected either the authoring environment or projectors. I don't know why the technote tells you to copy the files to your Director folder as well as Shockwave, but it's clearly wrong. At least, I'm assuming you're referring to this: http://www.macromedia.com/support/director/ts/documents/sw_xtraupdate_v106.h tm Although it doesn't mention an update to any DLLs, just the Xtras. Where did the updated DLLs come from? I had to reinstall Director as a result of this (didn't back up the old files), but I got an error on startup (as did at least one other poster on m.d.l). Fortunately, the Xtras do fix the Shockwave problem. However, I don't know why they haven't updated the standard download yet (auto-update doesn't work reliably as stated in the technote (at least not immediately): you have to apply the patch manually to every system). - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
lingo-l LingoFish
OK, I hope this gets through to the list properly. For the benefit of anyone who is only on Lingo-L and has not seen any of the other messages: The bug in the first release has been fixed. If you have the buggy version, please go back to the page and download the new version. Also, if anyone wants it, I've finished a pure PHP version of Blowfish too, but won't be releasing it until I've commented the code properly, etc. In the meantime, email me if you want this code to play with Shockwave/server communication and can't install mcrypt on your server. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
lingo-l Re: Blowfish in PHP (was: LingoFish 1.1 Available)
- Original Message - From: Robert Tweed [EMAIL PROTECTED] ... I'm planning to do a pure PHP version too, for anyone who cannot install mcrypt (which includes some of my own projects). In case anyone's interested, I've actually completed this over the weekend. I've done two versions, a full Blowfish object and litefish that uses precalculated s-boxes so it only works with one key, but is much faster if you only need one key (useful for Shockwave games, etc., that use a stored key to communicate with the server). The full Blowfish script would probably kill your webserver if you put into heavy use because it takes so long to initialise a key. While I was writing these, I also spotted a slight security faux-pas in LingoFish. It's not a major thing, but the object stores the key in a property after you set it. In theory, this could make life easier for anyone who might want to steal your key using a degbugger and reading the RAM. Of course, this is normally going to be irrelevant since the key must exist in memory in order to set it. Still, there is no good reason to store it as a property, so I did a Bad Thing :-( I'll release a new version later that does not do this, but since it's not a major concern, I'm not going to release yet another version right away. I just thought I'd point it out, in case anyone wants totally airtight security for something and didn't notice that in the source. If anyone wants to completely avoid storing their key in the movie, I'll probably do a lite version of LingoFish that uses recalculated s-boxes for a single key. That would be much harder to crack for a stored key, but I won't have time to write this for a while. Anyway, my PHP scripts are finished, but I'm not going to put it on the web until I've commented the code a bit, etc. In the meantime, if anyone wants to play with this stuff and can't install mcrypt, let me know and I'll send you the PHP code. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
lingo-l LingoFish 1.1 Available
If you need to securely communicate with a server, or store small hidden keys then strong encryption is a handy thing. This is a highly optimised, pure Lingo implementation of the Blowfish cipher. I hope a few of you will find it useful: http://www.killingmoon.com/director/lingofish/ If you use PHP with mcrypt installed, you can also use Blowfish on the server side, which could be extremely useful for secure Shockwave communications. I'm planning to do a pure PHP version too, for anyone who cannot install mcrypt (which includes some of my own projects). I announced this quietly earlier this week, only on Lingo-L, in case there were any bugs. And there was, caused by a small Lingo quirk that is written up on the site. The bug is now fixed and LingoFish is good to use cross-platform. Thanks to all who helped resolve the problem. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l ANN: LingoFish available at last!
- Original Message - From: Josh Race [EMAIL PROTECTED] 9 out of 34 passed...is that a PASS? Um, no. Did that really happen or is that an A-level joke? - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l sending emails with baOpenURL
Alternatively, you can also just type %0d. I'd use URLencode to encode the entire string, or simply type the hex code of the character with % in front, which is all URL encoding does. If you just want individual characters, it's simpler and faster to do it that way. - Robert - Original Message - From: Bertil Flink [EMAIL PROTECTED] You can use urlEncode(RETURN), and is exactly Lingo (-: Look up URLEncode in Director Help for more options. Bertil Flink Creative Media [EMAIL PROTECTED] Tel: +46 8 544 013 73 Mob: +46 706 92 18 95 - Original Message - From: Michael von Aichberger [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, October 29, 2002 11:02 PM Subject: lingo-l sending emails with baOpenURL Hi list! I want to enable the user of a cd-rom to send emails with his own e-mail software such as Outlook. Fot this I could use buddyAPI's baOpenURL command: ok = baOpenURL(mailto:; where ?subject= subject body= body, normal) This works but the body text appears in one single line only. How do I encode a line break in the URL-string? (RETURN, numToChar(10), numToChar(13) didn't work ...) I know that this is not exactly Lingo, but it I am sure that some of you know the answer to this simple question and it would help me a lot! Thanks for any help! Michael [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!] [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!] [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l more than 1 ancestor
- Original Message - From: Irv Kalb [EMAIL PROTECTED] Only one. There is just a single ancestor keyword. You can really nest ancestor scripts, but an ancestor script can set its own ancestor, etc. But it sounds like you are looking for multiple inheritance - and Lingo does not allow that. The only close solution is do a recursive search for the base class and add a new ancestor, like this: on addAncestor me, newAncestor obj = me repeat while ObjectP( obj.getaProp( #ancestor ) ) obj = obj.ancestor end repeat obj.setaProp( #ancestor, newAncestor ) end It's also worth pointing out that the same code should work as a movie script, just don't get confused by the use of me. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l more than 1 ancestor
- Original Message - From: Evan Adelman [EMAIL PROTECTED] but you can add scripts to sprites on the fly w/ something like: y= new (script newScript) sprite(me.spriteNum).scriptInstanceList.add(y) That reminds me of a multiple inheritance hack that someone pointed out before. You can set the ancestor of a script to a sprite, and then all the scripts in the scriptInstanceList of that sprite are considered it's ancestor by Lingo. A bit of a dirty solution if you ask me, but I'm told that it does work. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l List archives?
- Original Message - From: Howdy-Tzi [EMAIL PROTECTED] You can see it if you set your mail program to show all header contents. That stuff is normally kept hidden, but when you do a show all you can see all the links. Hmm, I also assumed you mistakenly said header instead of footer. I wonder why the link isn't in the standard footer that is appended to every message instead of hiding it in the headers? How many people (apart from trolls) put useful information in the message headers? I'd never have thought to look there if you hadn't mentioned it. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l List archives?
- Original Message - From: Howdy-Tzi [EMAIL PROTECTED] ... instead of hiding it in the headers? I think because Tab hasn't got around to updating it yet. ;) Spot the subtle hint, heh ;-) How many people (apart from trolls) put useful information in the message headers? It's actually becoming a somewhat common practice for listserv engines. Interesting, I'll need to check all my list messages to see how many of them have got the same headers. Maybe we someone could write a mail client (in Lingo? :) that can automatically display the links from the headers when reading messages from that list (little unsubscribe, archive buttons in the corner of the window). In fact, if only they could add similar headers to spam... - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l List archives?
- Original Message - From: Howdy-Tzi [EMAIL PROTECTED] In fact, if only they could add similar headers to spam... Funny you should mention that. There's a company online now (I don't recall the name) that allows subscribers to their service (it's free for individual use) send email through their system more or less securely; the mail sent has *copyrighted* haiku embedded in its headers. Nice idea in some ways. Unfortunately it has some dodgy implications for legitimate users, so I'm not so sure I'd be happy about that myself. I mean, if I email you a piece of code, would they immediately aquire the copyright? - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l List archives?
- Original Message - From: Howdy-Tzi [EMAIL PROTECTED] No, they own the copyright only on the header content. The point is not to control email body; the point is to present a header that cannot legally be forged, thus allowing spam-detection scripts to work more effectively. Couldn't it be argued that if they don't own the copyright on content that isn't theirs (i.e., anything that they would not normally own the copyright to) then they don't own the copyright to the email address, forged or otherwise, regardless of their copyright notice? Does the header include some specific legal information regarding the from header? - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Getting rid of Internal?
- Original Message - From: Rob Romanek [EMAIL PROTECTED] a) is no problem, just click on the internal cast to make it the active window, then use the Property Inspector to change the name. D'oh! Why did I think that couldn't be done? I'm certain I must have tried it before sometime... Something else that might be useful is if you could reorder the casts Yes, that actually would be quite useful because of the fact that Lingo searches through each cast in order, starting with the first (actually, it starts with the current cast, and restarts at the first if it misses). This could be used to optimise your movies a bit. On thinking mose more, why can't Director just save all the window positions, including casts? That would make more sense. Then there would be no need to grumble about the bad choice of primary cast. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Global vs local
- Original Message - From: Shailendra Vijayvergia [EMAIL PROTECTED] I want to pass a value from one sprite to another sprite located in another channel. Is there any way to pass this without using global variable, because i don't want to keep that variable other than those two frames. Yes, pass the variable in a list: on sendMessage me theValue = 10 theList = [ theValue ] sendAllSprites( #updateValues, theList ) theValue = theList[1] -- * end * Note that only the list *itself* is passed by reference, so while this allows you to get values back from other handlers, the variable theValue is not automatically updated. Your other handler can simply set theList[1] = someValue and it will be passed to all the other sprites that receive the event, and finally returned to this handler afterward. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Distressflag (request)
- Original Message - From: Tab Julius [EMAIL PROTECTED] Even if it's for a good cause, it's technically a license violation and/or illegal, so I have to ask that you not use the list for this sort of thing. Anyone who wishes to respond should not reply via the list. Couldn't the 30 day trial version be used as a temporary stopgap anyway? - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Getting rid of Internal?
- Original Message - From: Buzz Kettles [EMAIL PROTECTED] why didn't you notice it when I mentioned it early yesterday ;) 'Cos someone (i.e., you) decided to top and bottom post in the same message ;-) Actually, I just noticed because you mentioned it. At the time I assumed your top post was all you had to say and didn't scroll down to the bottom part. That would make more sense. Then there would be no need to grumble about the bad choice of primary cast. What would you suggest for the primary cast? Whatever /you/ select as the primary cast, external casts being a potential option. As opposed to what Director arbitrarily imposes on you because it has always been the default. I used the phrase bad choice because Director shouldn't be making the choice at all. Hard coding is a Bad Thing. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: Wishlist gloom (Was lingo-l Getting rid of Internal?)
- Original Message - From: Howdy-Tzi [EMAIL PROTECTED] There are fundamental realities about the Director architecture, and the internal cast is one of them. I think what Buzz is indicating is that it would essentially require a top-down rewrite of the entire Director engine -- while breaking ALL backward compatibility to all previous file formats -- to accomplish that. That would suggest that Director is really badly written. I would only request something like this on the assumption that it is trivial to implement. In a half decent architecture it should be a few lines of code at most. The biggest obstacle I would anticipate is the extra testing/debugging requirement, given that there may be some code that (incorrectly) depends on the assumption that the internal cast exists. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: Wishlist gloom (Was lingo-l Getting rid of Internal?)
- Original Message - From: Howdy-Tzi [EMAIL PROTECTED] On what do you base that assessment? Well, there are no dependencies on casts, as such, as far as I am aware. There may be dependencies on members, and there needs to be a default cast (which is the current active cast, not necessarily Internal anyway) where new items can be created, but there doesn't need to be any specific references to Internal for anything. If there are dependencies, they are physical, not logical dependencies that could be removed by changing the implementation, but without affecting backward compatability. Of course, all this is conjecture as I have no idea what web of code goes to make up Director. I'm assuming that at some point, someone must have modularised it reasonably well: even if it wasn't done at the first version I don't think it could have come this far without the codebase being made fairly well organised, or we'd probably see a lot more bugs and backward compatability problems than we do. While we do get the odd annoying one or two, Director is actually amazingly bug-free compared to a lot of software. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: Wishlist gloom (Was lingo-l Getting rid of Internal?)
- Original Message - From: Howdy-Tzi [EMAIL PROTECTED] Well, there are no dependencies on casts, as such, as far as I am aware. I think I see what you're saying here; however I believe it's fair to see Director as needing at least one cast in much the same way as it needs a stage or score. That's fine. I never suggested that a movie should have no casts, just that there should be the option to delete the Internal cast after at least one other cast has been added. That cast then becomes cast 0. Logically, it would not matter whether that cast were internal or external. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Distressflag (request)
Interestingly, there seems to be some disagreement on this, but some interesting legal points have come up... At 5:59 PM -0400 10/23/02, Bruce Epstein - Zeus Productions wrote: To my knowledge, Macromedia has repeatedly said they have no objection to projector sharing. To my knowledge, it is the exact opposite. I remember someone from Macromedia (although I forget who) saying that in order to legally create a stub-projector for a given platform, you must own a copy of Director for that platform. Clearly one of us has this wrong. At 12:01 PM -0400 10/23/02, [EMAIL PROTECTED] wrote: Even if it's for a good cause, it's technically a license violation and/or illegal, so I have to ask that you not use the list for this sort of thing. Anyone who wishes to respond should not reply via the list. If I develop a project in Director for a client, I am effectively selling someone a projector. Why if I give that projector to someone for free would it be any different? This is the most interesting point I have heard on this subject. I don't see how they can prevent anyone doing this, under the terms of redistribution that come with Director. There might be a non-competition or anti-circumvention clause somewhere that broadly disallows behaviour that would cost Macromedia sales of Director, which might cover this. I am assuming that in order to be absolutely legal you would have to follow all relevant rules on Macromedia branding. However, the branding and registration rules only apply if you want to *distribute* a product, there is a specific exclusion for internal use. However, I suspect that to qualify as internal use the entity using the product would have to own the copy of Director that produced it. I don't think that is the interpretation that most developers currently go by though. IANAL, so I wouldn't trust my own judgement on this and would rather just go by whatever Macromedia says is their policy. After all, that's what counts at the end of the day, because the language of the TC's can probably be twisted either way by a sufficiently skilled lawyer, and Macromedia can afford more lawyers than me ;-) - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Help with lists
- Original Message - From: Robert Tweed [EMAIL PROTECTED] I finally figured out the problem. I was trying the getProp, but here's my problem with it. Let's say the user is clicking on Apple but the list contains [apple: apple.aif]. It get a property not found error because the clicked on text is Uppercase, but the list entry is lower case. Any suggestions for solving this? The easiest way around this is to use symbols, which are case-insensitive, so instead of: [apple: apple.aif] Oops, keyboard got a bit trigger-happy on me. As I was saying, instead of that, you would use: [#apple: apple.aif] Then use: fruitSound = pFruits[ symbol( pFruitName ) ] - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
lingo-l Getting rid of Internal?
Just a small thing that has been annoying me. I've recently started breaking all my code up into libraries (esp. the openLingo library) and putting them in linked casts. It also occured to me that to make LDM's work usefully, I should put *everything* in external casts, so the same code and assets can be shared between child and parent movies. Doing this has certainly cleaned up my movies, but it's left me with a big ugly internal cast that pops up whenever Director starts. It's unused, badly named, and is just waiting for things to be accidentally dropped into it. Is there any way to get rid of it? It's certainly well hidden, if it exists. If not, I'll email this one off to the wishlist. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Getting rid of Internal?
- Original Message - From: Tab Julius [EMAIL PROTECTED] I'm not aware of a way to get rid of it, and it'd probably break the engine if you did. Well, there shouln't be any physical ties to Internal, specifically, so there should not be any reason to remove it other than an oversight in the design of Director. Having done lots of experimentation for openLingo it seems Director needs a reference to the current cast, but that cast does not have to be Internal, it can be anything. Therefore, as long as a movie has at least one cast, it should work fine. AFAIK. - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
Re: lingo-l Getting rid of Internal?
- Original Message - From: Rob Romanek [EMAIL PROTECTED] As far a ditching the internal library, I find it extremely useful especially with LDMs. I keep the internal library exclusively for creating temporary cast members on the fly. That's a good point: I do that too, but traditionally, whenever I need this, I always have a dynamic cast somewhere, since I always used to use internal for scripts. Makes sense to start using it for that purpose instead. Just a pity I can't (a) Rename it, and (b) Stop it opening whenever you reload the project, although I suppose that gives me the opportunity to check it's always empty. rant Still, all these little things just seem like the stuff that Director *should* do without even having to ask, even if it's not all that important. I really just want to get rid of Internal to avoid any ambiguity, because in all my older movies it's the most important (or only) cast. Avoiding confusion is an important part of software engineering, even if it is something most people think of as quite minor. /rant - Robert [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]