Re: Creating bulletin boards, chat rooms, and mail messages wihtRR/MC and CGI
My suggestion is to just use Web Crossing - http://webcrossing.com. Yes, I speak as someone who works for Web Crossing, so I am not an unbiased observer. But there are incredibly low-cost Web Crossing solutions that make it worthwhile to consider, rather than reinventing the wheel. Plus WebX (Web Crossing) works great with Revolution, and is just as cross-platform. I even have an alpha version of an IM/Whiteboard working with a Revolution client and Web Crossing server as the backend. You can read about that project at http://webxedu.com/WebXClient/. The nice thing is you start with the following completely free, all built-in to Web Crossing - including a native, object-oriented database and integrated user directory: * web server * ftp server * SMTP/POP3/IMAP server * themes * scalable chat/live events server built in! * news server * xml-rpc support * server-side scripting * distributed and mirrored serving for large-scaling and then you can add in whatever bulletin board, blog, polls, classrooms, wiki, neuron (multimedia shared databases), etc., that you want to the system. It's perfect for Revolution-based clients. doug On 5/11/04 7:54 AM, Brent Anderson [EMAIL PROTECTED] wrote: Hello. I haven't exactly tried out the BB's or mail with this, but I am experimenting with a way to do chatting. It would require a dedicated server for more than two people, but is fine for this project that I'm working on (why screen resolution is such an issue...). You would have one field with the screen names, and one with the addresses (note: this would only work on a mac network til I can work out a few things). Then, when a new message was sent out, it would be sent to the server, placed into the servers session field, and then would go down the list of addresses and forward that message to everybody in the addresses list. There's my bit on that. Thanks, Brent Anderson ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution This email has been screened by Engate Spam Sentinel ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: The video library and the iSight camera
Yes. I do it all the time. doug On 3/30/04 1:49 AM, JoÎl Guillod [EMAIL PROTECTED] wrote: Is it possible to use the Video Library (revInitializeVideoGrabber ...) with an iSight camera? Joel Guillod ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution This email has been screened by Engate Spam Sentinel ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Within a border?
I need to detect whether the cursor is within the border area of a control (in this case, a field). I believe I can do this by using is within, then defining two rectangles - one for the object (containing the border) and one for the object (inside the border) and doing an appropriate test with both rectangles. Unless Revolution has some more convenient syntax for testing for being within a control's border. Does it, by any chance? Any caveats worth mentioning? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Within a border?
Right, that's the sort of test I was thinking of. doug On 3/25/04 9:18 AM, Brian Yennie [EMAIL PROTECTED] wrote: How about something like: function isWithinBorder tLoc,tObject put the rect of tObject into tRect if (tLoc is within tRect) then if abs(item 1 of tLoc - item 1 of tRect) = (the borderWidth of tObject) then return TRUE if abs(item 1 of tLoc - item 3 of tRect) = (the borderWidth of tObject) then return TRUE if abs(item 2 of tLoc - item 2 of tRect) = (the borderWidth of tObject) then return TRUE if abs(item 2 of tLoc - item 4 of tRect) = (the borderWidth of tObject) then return TRUE end if return FALSE end isWithinBorder You could call it with something like: if (isWithinBorder(the mouseLoc, field 1)) then... The idea being if it's within the rect, and within (borderWidth) pixels of the left, right, top or bottom, then it's in the border. This is untested and of course won't work with non-rectangular controls. HTH Brian I need to detect whether the cursor is within the border area of a control (in this case, a field). I believe I can do this by using is within, then defining two rectangles - one for the object (containing the border) and one for the object (inside the border) and doing an appropriate test with both rectangles. Unless Revolution has some more convenient syntax for testing for being within a control's border. Does it, by any chance? Any caveats worth mentioning? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution This email has been screened by Engate Spam Sentinel ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Checking for being on the border of a control
I ended up doing it like this, which seems to work ok. I guess it is alright doing it this way (inside a mouseMove handler, after I've determined I'm in the object: put the rectangle of lastObject into outerRect put the borderWidth of lastObject into thisBorderWidth put (the left of lastObject) + thisBorderWidth into innerLeft put (the top of lastObject) + thisBorderWidth into innerTop put (the right of lastObject) - thisBorderWidth into innerRight put (the bottom of lastObject) - thisBorderWidth into innerBottom put innerLeft,innerTop,innerRight,innerBottom into innerRect if the mouseLoc is within innerRect then addToStatus inside lastObject else if the mouseLoc is within outerRect then addToStatus on the border of last Object end if The last else if could really be just an if, but just in case I screwed up and was not really within the object it seemed safer to add that. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Select question
But... in order for the mouseDouble message to be recognized you first have to be in the browser tool. :) Anyway, I'm trying about 50 combinations to see which might work best. Thanks! doug On 3/23/04 3:53 PM, Brian Yennie [EMAIL PROTECTED] wrote: Doug, A few suggestions: You won't be able to select text with that tool chosen- that's just not how the tool works, in the IDE or an app. If you want to edit text, you'll need to choose browse tool again. It might also be helpful to note that you can select, move, and drag objects by script without ever changing tools. Or you could switch tools when the user double-clicks on a field, etc. HTH - Brian On 23 Mar 2004, at 3:01 pm, Doug Lerner wrote: In an app I'm working on, if I have the select tool chosen and click on a text field I can move the text field, resize it and delete it. But I can't select the text inside the text field in order to modify it. What's the usual way of doing this? Thanks, ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution This email has been screened by Engate Spam Sentinel ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Select question
On 3/23/04 4:21 PM, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: List-Help: mailto:[EMAIL PROTECTED] List-Subscribe: http://lists.runrev.com/mailman/listinfo/use-revolution, mailto:[EMAIL PROTECTED] Sender: [EMAIL PROTECTED] Errors-To: [EMAIL PROTECTED] So you are allowing your user to resize the field by switching to the Select tool but yet you want the text editing behavior of the Browse tool when the user clicks in the field? Yes! H ... usually when folks want the user to have control over field sizing, they stay in the browse mode and use mouse and click controls to trigger the drag sizing of the field. I tried it your way, though, and it works! I just created mouseEnter and mouseLeave handlers to switch between the tools. That happens to be exactly what I am testing right now! One nice thing about using mouseEnter and mouseLeave is that it seems more interactive. You can hilite the selected object while moving the mouse without waiting for a mouse click. The only odd part was being able to sneak up on a text field and select it for moving or sizing before it switched me to browse for editing. I did get that to work, though, by increasing the border width and then modifiying the mouse traps to allow for it's thickness before making the switch. Is that what you meant ? Yes, pretty much. I stupidly programmed myself into somewhat of a corner though where I am use a mouseMove handler to constantly set the current tool. But I'll just uncorner myself somehow. :) doug In a message dated 3/22/04 10:11:42 PM, [EMAIL PROTECTED] writes: I mean in an app. On 3/23/04 2:50 PM, Sarah Reichelt [EMAIL PROTECTED] wrote: Use the Contents section of the Inspector, or change back to the Browse tool. On 23 Mar 2004, at 3:01 pm, Doug Lerner wrote: In an app I'm working on, if I have the select tool chosen and click on a text field I can move the text field, resize it and delete it. But I can't select the text inside the text field in order to modify it. What's the usual way of doing this? ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution This email has been screened by Engate Spam Sentinel ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Select question
The docs say it is only sent when in the browser tool though... doug On 3/23/04 5:45 PM, Richard Gaskin [EMAIL PROTECTED] wrote: Doug Lerner wrote: But... in order for the mouseDouble message to be recognized you first have to be in the browser tool. :) Not in a standalone. The mousedoubleUp message is sent to the object double-clicked on by the engine, but the Rev and MC IDEs trap that message and don't pass it. You can suspend the IDE and you should get the message. -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution This email has been screened by Engate Spam Sentinel ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
selecting a text field - a few questions
1. If I select a text field and place the insert cursor in the text, the text field gets surrounded by a blue box. What property is that? 2. The blue box mentioned in (1) above disappears if I select another text field, but not if I select another control, like a graphic in the same card. Why is that? 3. Sometimes the insert cursor doesn't appear. I can type, but I have no confidence as to what the start point is. Is there a way to force the insert cursor to appear to avoid that problem? It is hard to duplicate. Usually it appears when I select the text field, but I can repeat the same action and sometimes it won't appear. Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Select question
In an app I'm working on, if I have the select tool chosen and click on a text field I can move the text field, resize it and delete it. But I can't select the text inside the text field in order to modify it. What's the usual way of doing this? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
is within - a syntax bug?
This results in a syntax error that what is to the left of within is not a point: addToStatus within: the mouseLoc is within the rect of the target into withinCheck But rewriting it this way works: put the mouseLoc is within the rect of the target into withinCheck addToStatus within: withinCheck A compiler bug? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Select question
I mean in an app. doug On 3/23/04 2:50 PM, Sarah Reichelt [EMAIL PROTECTED] wrote: Use the Contents section of the Inspector, or change back to the Browse tool. Cheers, Sarah On 23 Mar 2004, at 3:01 pm, Doug Lerner wrote: In an app I'm working on, if I have the select tool chosen and click on a text field I can move the text field, resize it and delete it. But I can't select the text inside the text field in order to modify it. What's the usual way of doing this? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution This email has been screened by Engate Spam Sentinel ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
copying a graphic doesn't trigger a new graphic message
If I create a new graphic manually in a card the new graphic message is sent. But if I copy a graphic from one card to another it doesn't seem as though the message is sent. Is this normal? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: copying a graphic doesn't trigger a new graphic message
I see what was happening. Copying an entire card at once does not trigger the individual new graphic messages for each graphic control on the card. But if the graphics are copied one-by-one the new graphic message is triggered. doug On 3/18/04 10:29 AM, Doug Lerner [EMAIL PROTECTED] wrote: If I create a new graphic manually in a card the new graphic message is sent. But if I copy a graphic from one card to another it doesn't seem as though the message is sent. Is this normal? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution This email has been screened by Engate Spam Sentinel ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Upgrade versus update
Of course, after a certain amount of time, expecting bug-fixes on older versions wouldn't be reasonable either. Every software product has a supported lifetime. For example, if you found a bug in Windows 95, Microsoft would hardly be expected to provide a fix a this point in time. After a year or two following the major release of a software product, usually it's time to go on. Otherwise it becomes too expensive a product to support and sell and nobody could afford to buy it. doug On 3/14/04 7:56 AM, Marian Petrides [EMAIL PROTECTED] wrote: I couldn't agree more with all the points you made. Marian On Mar 13, 2004, at 5:56 PM, A.C.T. wrote: Hi, Marian, Ah, but what happens when those bug fixes come bundled with major feature enhancements? Is that an update or an upgrade? Sounds like an upgrade to me. That's an upgrade, as it carries major enhancements. Please don't get me wrong on this: I am willing to pay for upgrades (that I need) and I am expecting free updates where necessary! Now if a company decides to NOT bugfix their product for free for the honest customer the result - at least on the long run - will be: less customers. That's just what the market is like: The way you deal with your customers defines the way they deal with you. I have bought my license from Runrev because I think Revolution is a product that may help me creating some specific products. I haven't really started using it (as I really get headache from Transcript), so I cannot tell if I need an update or an upgrade right now :-) I like your idea about having a choice in which upgrade you want to take. I hope you'll post on this list what happens when you try to use your free upgrade to go from 2.x to 3.x, because I suspect this is an eventuality that RunRev had not anticipated and had not intended. Clever reading on your part! Well, that's just what the license says: Your key is valid for the current release and one upgrade. It does not say and the next upgrade available, it clearly says and one upgrade. So it is my choice which upgrade I want to have for free: if there are major enhancements in the next version it's most likely that I choose that. If the next-plus-one version is two years ahead, it's very likely that I also choose the next version as well. But if the frequency of upgrades should be three/four a year, it's very likely that I do not upgrade to the very next but one of the following versions. According to the license that's what the key is for: one free upgrade. I consider this a fair license and I am going to change some of my own licenses according to this idea. Back to updates: Software nearly never ever is bug-free. A cooperative way to keep your customers satisfied is handing out patches (or call them updates), because this shows: You do care for what you have done. That's true especially for companies that have limited resources: The smaller your budget is the more important it is to have satisfied customers (I tend to call them partners) that are willing to pay for real upgrades, because you fix the bugs you made in the product you sold them. Only big companies can allow themselves to ignore that they have made mistakes (do I need to name some?) and sell every bugfix as an upgrade. From the cooperative side this leads to short-term partnerships, and it's up to the company to decide if they prefer that to long-term partnerships with customers/partners that pay for real upgrades because you care for your product. Marc Albrecht A.C.T. / level-2 Glinder Str. 2 27432 Ebersdorf Deutschland Tel. 04765-830060 Fax. 04765-830064 ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution This email has been screened by Engate Spam Sentinel ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: The opposite of save?
On 3/4/04 2:45 PM, David Squance [EMAIL PROTECTED] wrote: I am sure this must be a simple question... If I save a stack using the save stack command, how can I later read that stack back in? doug Is this in the IDE or a standalone? If you just save a stack, it should still be staring you in the face. If you close and remove from memory, it needs to be re-opened, as when starting from scratch. If it's in the IDE you can check the Application Browser in the Tools menu to see if it's still active and access from there. If you want to script it to be the active stack (and it hasn't been removed from memory) use 'toplevel stack xyz' HTH It will be in the standalone. And there is no guarantee that it was saved by this run of the application. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: The opposite of save?
On 3/4/04 2:33 PM, Alex Rice [EMAIL PROTECTED] wrote: On Mar 3, 2004, at 9:52 PM, Doug Lerner wrote: I am sure this must be a simple question... If I save a stack using the save stack command, how can I later read that stack back in? go stack filename.rev Rev will look for stacks in the host filesystem if not in memory? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: The opposite of save?
On 3/4/04 6:57 PM, Klaus Major [EMAIL PROTECTED] wrote: Hi all, On 3/4/04 2:33 PM, Alex Rice [EMAIL PROTECTED] wrote: On Mar 3, 2004, at 9:52 PM, Doug Lerner wrote: I am sure this must be a simple question... If I save a stack using the save stack command, how can I later read that stack back in? go stack filename.rev Rev will look for stacks in the host filesystem if not in memory? Check the revert command in the dox :-) That also assumes that there was a save during the current app run. I'm trying to just read in a stack that I saved earlier - at any time. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: The opposite of save?
I think this can be done with the go stack URL syntax. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: The opposite of save?
On 3/5/04 12:24 AM, Alex Rice [EMAIL PROTECTED] wrote: On Mar 4, 2004, at 3:09 AM, Doug Lerner wrote: I think this can be done with the go stack URL syntax. Not necessary to use the URL syntax if it's on the local filesystem. Try it: go stack filename.rev I have it working now with the URL file:// syntax. Why would your syntax work? How does Rev know it is a filename you are talking about? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
The opposite of save?
I am sure this must be a simple question... If I save a stack using the save stack command, how can I later read that stack back in? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: RunRev Pricing
Mac OS 9 and Mac OS X are completely different systems. OS X is Unix, in fact. doug On 2/24/04 5:11 AM, Marian Petrides [EMAIL PROTECTED] wrote: Why? Win 95, 98, XP are all one license, right?So why would OS 9 and OS X be separate? I hate to get back into the pricing debate again, but once again the pricing model defies logic. Most frustrating. (And, no it's not relevant to me, I bought the whole magilla and glad I am thank you!) M On Feb 23, 2004, at 2:55 PM, J. Landman Gay wrote: On 2/23/04 10:35 AM, Richard Gaskin wrote: But as for getting going with Mac, I believe all Mac versions are included in the Mac license, which would mean both OS X and the older Classic. I can't imagine RunRev would charge separately for the defunct OS 9. Actually, it's a separate license. -- Jacqueline Landman Gay | [EMAIL PROTECTED] HyperActive Software | http://www.hyperactivesw.com ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Scrolling a Card?
Apparently you have to accomplish this by creating a group that is as large as the scrolling size you want and then add scrollbars to the group. The card itself does not scroll. I would love to see a sample stack with this myself. doug On 2/20/04 9:16 AM, Kathy Jaqua [EMAIL PROTECTED] wrote: Is it possible to scroll a card that is longer and/or wider then the screenRect? What property would I use? Kathy Graves Jaqua A Wildest Dream Software [EMAIL PROTECTED] ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Scrolling a Card?
You got me. :) I haven't actually tried this yet. I've been meaning to though. All I know is what it says in the docs: - You create a scrolling window by placing all the objects on the card in a scrolling group. If you make the group the same size as the stack window, scrolling the group causes the whole content area of the window to scroll. To display the group¹s horizontal or vertical scroll bar, set the group¹s hScrollbar or vScrollbar property to true. You can either set these properties in a handler or the message box, or use the Basic Properties pane in the group¹s property inspector to display or hide a vertical or horizontal scroll bar. Tip: After sizing the group to fit the window, set the group¹s lockLocation property to true. This prevents it from automatically resizing to fit the contents when you switch cards. - But what confuses is me is what does it mean by make the group the same size as the stack window...? If you do that, what is the scroll for? doug On 2/20/04 9:35 AM, Kathy Jaqua [EMAIL PROTECTED] wrote: Thanks Doug! OK sooo, I would create a bottom level group larger then the card and ... would I lose the groups that are on the card If I scrolled them out of sight? Do they scroll out of sight? Um :) Kathy Graves Jaqua A Wildest Dream Software ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Japanese keyboard layout
Which keys are not showing up right? This seems to work on a Mac OS X Japanese keyboard... doug On 2/17/04 8:21 PM, kweto [EMAIL PROTECTED] wrote: Hello (again!), Having just switched from MC to RunRec the other day, I was surprised to find while scripting that RunRev's keyboard layout doesn't automatically adapt itself to my actual keyboard layout, i.e., Japanese 102 key. Short of relabelling the upper-row characters on my keyboard, is there a way of fixing this within RunRev? If it means anything, I'm on Win2k with the keyboard of course set to Japanese. Thank you. Nicolas Cueto ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Style: Select Grouped Controls
On 2/18/04 5:48 AM, Dar Scott [EMAIL PROTECTED] wrote: That is, why use groups? One reason I was thinking of using them was because the docs say that that is the way to make scrolling windows. In other words, there are no card or stack scrollbars, but there are group scrollbars. I don't want to lose the ability to individually manipulate each control though. In fact, except for scrolling, I don't care that they are a group. One thing about the scrollbar explanation that confused me though was it said to make the group the same size as the window. But if you do that, where is there to scroll? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: xml or other complete text representation of a control?
On 2/14/04 5:26 PM, Brian Yennie [EMAIL PROTECTED] wrote: Doug, the properties returns an associative array, perhaps you were treating it as a string? I was trying put the properties of graphic Tao2 that returns nothing. put the keys of the properties of graphic Tao2 is a syntax error it seems. I'll take a look at your script. Thanks, doug Check out the following- with the recent CVS thread going on here, I banged out this script to convince myself that textual representations of stacks weren't too bad. There's a bunch of stuff in here, including customProperties and escaping property values so they'll all fit on one line, etc, etc. But mostly, per your question you basically have a couple of options for dealing the the properties array- use combine (but watch out for property values that might contain your delimiter string inside of them, esp. with custom properties), or loop through the individual elements of the array using either: repeat for each element e in propArray or repeat for each line tKey in keys(propArray). HTH, Brian ## DEFINE SOME CONSTANTS constant kNONE = 0 constant kSTACK = 1 constant kCARD = 2 constant kPART = 3 constant kTYPENAMES = stack,card,part on mouseUp ## CHOOSE A FOLDER TO EXPORT THIS STACK TO answer folder Please select a folder to export to. if (the result is Cancel) then exit mouseUp exportStack it, the short name of this stack end mouseUp on exportStack theDir,whichStack put the directory into saveDir put the defaultStack into saveDefault set the directory to theDir set the defaultStack to whichStack ## EXPORT THE STACK OBJECT textExport kSTACK, the short name of this stack,kNONE,0 ## LOOP THROUGH EACH CARD AND EXPORT EACH OF ITS PARTS ## NOTE:: GROUPS SHOW UP AS THEIR OWN 'PART' ON EACH CARD THEY BELONG TO repeat with i=1 to (number of cds in this stack) exportCard theDir,whichStack,the id of cd i of this stack end repeat ## RESTORE THE CURRENT DIRECTORY set the directory to saveDir set the defaultStack to saveDefault end exportStack on exportCard theDir,whichStack,cardID put the directory into saveDir put the defaultStack into saveDefault set the directory to theDir set the defaultStack to whichStack textExport kCARD, cardID,kSTACK,the short name of this stack repeat with j=1 to number of cd parts of cd id cardID of this stack exportPart theDir,whichStack,cardID,the id of part j of cd id cardID of this stack end repeat set the directory to saveDir set the defaultStack to saveDefault end exportCard on exportPart theDir,whichStack,cardID,partID put the directory into saveDir put the defaultStack into saveDefault set the directory to theDir set the defaultStack to whichStack textExport kPART,partID,kCARD,cardID set the directory to saveDir set the defaultStack to saveDefault end exportPart on textExport objectType, objectID, parentType, parentID ## FIGURE OUT THE RELATIVE LOCATION OF THE FILES switch (objectType) case kSTACK put (the directory)/stack_objectID/ into parentDir break case kCARD put (the directory)/(item parentType of kTYPENAMES)_(parentID)/card_objectID/ into parentDir break case kPART put (the directory)/(stack_(the short name of this stack))/(item parentType of kTYPENAMES)_(parentID)/part_objectID/ into parentDir break end switch ## CREATE A FOLDER FOR THIS OBJECT create folder parentDir if (objectType = kSTACK) then put stackquoteobjectIDquote into objectDesc else put ((item objectType of kTYPENAMES) id objectID) into objectDesc put the long id of objectDesc into objectDesc end if put (parentDir)(item objectType of kTYPENAMES)[(objectID)] into fName ## EXPORT THE SCRIPT put the script of objectDesc into tScript put tScript into url (file:fName.sct) ## EXPORT THE ORDINARY PROPERTIES put the properties of objectDesc into tProps put extractProps(tProps) into url (file:fName.prp) if (word 1 of the long id of objectDesc is image) AND (the fileName of objectDesc is empty) then put compress(the imageData of objectDesc) into url (file:fName.image) put compress(the alphaData of objectDesc) into url (file:fName.alpha) put compress(the maskData of objectDesc) into url (file:fName.mask) end if ## EXPORT THE CUSTOM PROPERTIES put empty into tCustomProps put the customPropertySet of objectDesc into savePropertySet repeat for each line tPropertySet in the customPropertySets of objectDesc set the customPropertySet of objectDesc to tPropertySet put the customProperties of objectDesc into tProps put tPropertySetcoloncrextractProps(tProps)cr after tCustomProps end repeat put tCustomProps into url (file:fName.cst) set the customPropertySet of objectDesc to savePropertySet end textExport function extractProps @tPropArray local tPropData repeat for
open file read from file vs get URL
I have been using open file and read from file. The docs, however, note: As an alternative to the open file, read from file, and write to file commands, you can also use the URL keyword with get, put, and other commands to access the contents of a file. Is there an advantage to one method over the other? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
number of arguments, etc?
Is there something in Transcript like the JavaScript arguments array, where you can check the number of arguments received by a function, and what those arguments are? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: number of arguments, etc?
Interesting. I'll check this out. doug On 2/17/04 2:32 PM, Dar Scott [EMAIL PROTECTED] wrote: On Monday, February 16, 2004, at 10:15 PM, Doug Lerner wrote: Is there something in Transcript like the JavaScript arguments array, where you can check the number of arguments received by a function, and what those arguments are? Look at paramCount() and param(). With limited data, params() might be OK. I don't use it. If a value parameter is not in the call, it is empty in parameter variable for the function or handler. Dar Scott ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: group question
Thanks. That was helpful! doug On 2/16/04 4:21 AM, Ken Ray [EMAIL PROTECTED] wrote: Doug, There isn't a select all objects command, but you can accomplish it in one of two ways: 1) select obj1 and obj2 and obj3 ... and objN 2) repeat through all the objects and set the 'selected' property of the object to true Personally I prefer #2 as it is easier: repeat with x = 1 to the number of controls set the selected of control x to true end repeat Then execute the group command. After you have grouped a set of objects, you can select individual objects in the group *by* script at any time, but if you want the user to manipulate them with the pointer tool, you'll need to set the selectGroupedControls property to true. HTH, Ken Ray Sons of Thunder Software Email: [EMAIL PROTECTED] Web Site: http://www.sonsothunder.com/ -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Doug Lerner Sent: Saturday, February 14, 2004 8:01 PM To: How to use Revolution Subject: group question If I want to make a group out of all the objects in a card (all the objects are graphics, images and text fields) so I can scroll the window, is there an expression I can use to refer to all the objects? If I do this, does it then prevent me from selecting individual objects in the group? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use- revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Building app distributions - some best practices?
On 2/14/04 10:08 PM, Rob Cozens [EMAIL PROTECTED] wrote: OS 9 I am not sure of the best way to bundle this for distribution, because the app needs to preserve its macbinary resource fork. What do people use for this so they can distribute it? Hi Doug, I use a MacBinary self-expanding Stuffit! archive. Does the self-expanding version travel well over email and via FTP? I also heard that Disk Utility had something for this... doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Text to speech nonfunctional in standalone
It could be the same reason why my video grabber worked in the IDE and did not work at first in the standalone. The speech feature requires that a separate file called revspeech.bundle be in the data folder in the same location as the standalone. Make sure that is also generated when building the application. And when you move the application, make sure to take that data folder and bundle file with you. doug On 2/15/04 6:21 AM, Marian Petrides [EMAIL PROTECTED] wrote: I just put together a very simple demonstration of the RevSpeak command which consists of a card with 2 items on it: A field named TextToSpeak into which one enters text and a button containing the following simple script. On mouseUp Put field TextToSpeak into whatText RevSpeak whatText end mouseUp This works just fine (speaks the text entered into the field whenever button is pressed) in the IDE running in Mac OS X 10.3. However, when I make the stack into a standalone for OS X, pressing the button yields nothing but silence. Anybody have any thoughts on why this works in IDE but not in standalone??? Thanks Marian ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Building app distributions - some best practices?
My test with OS X's built-in .zip archiving with OS 9 apps showed the resource fork was not preserved. At least, an app archived that way could not be successfully sent through email or ftp. Also (and I mentioned this in my original note) when I .zip the Windows build and then unzip on Windows I get extra stuff - a folder called _MACOSX. Where is that coming froom? doug On 2/15/04 9:37 AM, Thomas McGrath III [EMAIL PROTECTED] wrote: OSX has builtin zip. It is under the actions button labeled Create Archive of... OSX will also unzip via BOMArchiveHelper which is built in as well. Of course it is best if zip files are created on the Mac since Windows zip files are not always predictable in preserving the resource fork. But OSX zip will do the job. Stuffit will unzip as well. Tom On Feb 14, 2004, at 7:25 PM, Ian Wood wrote: On 14 Feb 2004, at 23:49, Thomas McGrath III wrote: sit, zip and dmg all work well via email/http etc. snip Are you sure about zip? My experience is that applications never work on Mac 9 or X after being zipped, as it doesn't preserve the resource fork. I find sit dmg to be safer for apps. Ian Wood ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution Thomas J. McGrath III SCS 1000 Killarney Dr. Pittsburgh, PA 15234 412-885-8541 ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
group question
If I want to make a group out of all the objects in a card (all the objects are graphics, images and text fields) so I can scroll the window, is there an expression I can use to refer to all the objects? If I do this, does it then prevent me from selecting individual objects in the group? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Keeping track of a control's transformation?
In a client application I am working on, I am drawing arrows and sending the arrow information to a server, to be mirrored in other clients. One thing that doesn't mirror perfectly though is this: in the client, when you select and resize an arrow, you can effectively change the rotation of the arrow by resizing so that the relative corners change. For example, you can turn a bottom left to top right arrow into a bottom right to top left arrow by dragging the top-right corner anchor to the left, effectively turning the anchor into the top-left corner anchor. Do you know what I mean? Anyway, all I am sending for resizes is the end rectangle, and that no longer has enough information in it to indicate that such a transformation took place. Is there any information - a before and after transformation matrix or something like that - that I can use instead to send more complete information on what happened? Thanks, Doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Keeping track of a control's transformation?
I think I need more than that though. Something about the entirety of the transformation matrix. Or rather than the rectangle, the begin and end points of all the anchors at least. The problem is that left can become right and up can become down... doug On 2/13/04 6:56 PM, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: You could send the start click location (in a mousedown event) and the end click location (in a mouseup)... Hope it helps... -=- Xavier Bury Clearstream Services TNS NT LAN Server ext 36465 Voice: +352 4656 43 6465 Fax: +352 4656 493 6465 Doug Lerner [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 13/02/04 10:47 AM Please respond to How to use Revolution To: [EMAIL PROTECTED], How to use Revolution [EMAIL PROTECTED] cc: Subject:Keeping track of a control's transformation? . In a client application I am working on, I am drawing arrows and sending the arrow information to a server, to be mirrored in other clients. One thing that doesn't mirror perfectly though is this: in the client, when you select and resize an arrow, you can effectively change the rotation of the arrow by resizing so that the relative corners change. For example, you can turn a bottom left to top right arrow into a bottom right to top left arrow by dragging the top-right corner anchor to the left, effectively turning the anchor into the top-left corner anchor. Do you know what I mean? Anyway, all I am sending for resizes is the end rectangle, and that no longer has enough information in it to indicate that such a transformation took place. Is there any information - a before and after transformation matrix or something like that - that I can use instead to send more complete information on what happened? Thanks, Doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution Visit us at http://www.clearstream.com IMPORTANT MESSAGE Internet communications are not secure and therefore Clearstream International does not accept legal responsibility for the contents of this message. The information contained in this e-mail is confidential and may be legally privileged. It is intended solely for the addressee. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful. Any views expressed in this e-mail are those of the individual sender, except where the sender specifically states them to be the views of Clearstream International or of any of its affiliates or subsidiaries. END OF DISCLAIMER ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Keeping track of a control's transformation?
Certainly knowing which point was being dragged would help. How do I detect that? I tried looking up anchor and vertex in the Transcript dictionary, but couldn't find anything... doug On 2/13/04 7:05 PM, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: if you know where your arrow was pointing before, the new mouseup location will tell you where it is at in comparison to the original point. if you have an arrow with corners ABCD where the arrow is vector AD, then dragging corner B (topright) below and left of point C (botleft) a simple if (newX Bx) and (newy By) then structure can tell you where the new arrow is pointing... In the mousedown you record which point is being dragged so you know what is changing... Better? On 13/02/2004 11:00:37 AM use-revolution-bounces wrote: I think I need more than that though. Something about the entirety of the transformation matrix. Or rather than the rectangle, the begin and end points of all the anchors at least. The problem is that left can become right and up can become down... doug On 2/13/04 6:56 PM, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: You could send the start click location (in a mousedown event) and the end click location (in a mouseup)... Hope it helps... -=- Xavier Bury Clearstream Services TNS NT LAN Server ext 36465 Voice: +352 4656 43 6465 Fax: +352 4656 493 6465 Doug Lerner [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 13/02/04 10:47 AM Please respond to How to use Revolution To: [EMAIL PROTECTED], How to use Revolution [EMAIL PROTECTED] cc: Subject:Keeping track of a control's transformation? . In a client application I am working on, I am drawing arrows and sending the arrow information to a server, to be mirrored in other clients. One thing that doesn't mirror perfectly though is this: in the client, when you select and resize an arrow, you can effectively change the rotation of the arrow by resizing so that the relative corners change. For example, you can turn a bottom left to top right arrow into a bottom right to top left arrow by dragging the top-right corner anchor to the left, effectively turning the anchor into the top-left corner anchor. Do you know what I mean? Anyway, all I am sending for resizes is the end rectangle, and that no longer has enough information in it to indicate that such a transformation took place. Is there any information - a before and after transformation matrix or something like that - that I can use instead to send more complete information on what happened? Thanks, Doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution Visit us at http://www.clearstream.com IMPORTANT MESSAGE Internet communications are not secure and therefore Clearstream International does not accept legal responsibility for the contents of this message. The information contained in this e-mail is confidential and may be legally privileged. It is intended solely for the addressee. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful. Any views expressed in this e-mail are those of the individual sender, except where the sender specifically states them to be the views of Clearstream International or of any of its affiliates or subsidiaries. END OF DISCLAIMER ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Keeping track of a control's transformation?
On 2/13/04 7:22 PM, Jan Schenkel [EMAIL PROTECTED] wrote: --- Doug Lerner [EMAIL PROTECTED] wrote: In a client application I am working on, I am drawing arrows and sending the arrow information to a server, to be mirrored in other clients. One thing that doesn't mirror perfectly though is this: in the client, when you select and resize an arrow, you can effectively change the rotation of the arrow by resizing so that the relative corners change. [snip] Thanks, Doug Hi Doug, I think you can do it by sending along the contents of the 'points' property. Yes - basically refreshing the graphic would probably do it. I was trying to be efficient and avoid resending the graphic data if I didn't have to... doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Keeping track of a control's transformation?
Thanks, Jan. That turned out to be a simple enough solution for now, and that's what I ended up doing. doug On 2/13/04 7:40 PM, Doug Lerner [EMAIL PROTECTED] wrote: Hi Doug, I think you can do it by sending along the contents of the 'points' property. Yes - basically refreshing the graphic would probably do it. I was trying to be efficient and avoid resending the graphic data if I didn't have to... ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
PowerPoint to Rev stack conversion?
Has anybody ever tried a PPT - Rev stack conversion? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Building app distributions - some best practices?
I have an app I have been working on, with versions for OS X, OS 9, Windows and Linux. The app consists of the executable and also a data folder that goes in the same directory of the app. I'm developing on OS X. Here is what I've been doing so far for each distribution to make it available, with some questions to. I would love to hear how other people recommend doing this as well. OS X This is the easiest. I select the app and the data file and then choose create archive from 2 items from the Panther finder menu. Then I rename archive.zip to the nameOfMyApp.zip. I see no problems with this so far. Windows --- I do the same as for the OS X build. This works, but when I expand the archive on the Windows machine there is always an extra folder inside called _MACOSX. Inside that extra folder there are what appear to be 1K aliases to all the files in the app directory itself. Anybody know why this happens? Linux - In the Terminal, I go to the directory containing the app and first chmod +x the app to turn on it's execution permission bit. I don't know why Revolution doesn't automatically do this. Then I tar and gzip the app and datafile. This seems to work ok. OS 9 I am not sure of the best way to bundle this for distribution, because the app needs to preserve its macbinary resource fork. What do people use for this so they can distribute it? Thanks! doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: PowerPoint to Rev stack conversion?
Very useful reply. Thanks for the info! doug On 2/14/04 10:30 AM, Thomas McGrath III [EMAIL PROTECTED] wrote: Yes and it is a nightmare!! If you are using the Mac go and get keynote and open your powerpoint in keynote and then export as an interactive quicktime. Keynote will make the PPT look better. Interactive Quicktime will keep all of the transitions and builds. It will lose any hyperlinks but if you know how to do quicktime hotspots you can put them back in. Or you can get the movie time and act on mouse ups that way. If you can not use quicktime then do what I did and export from PPT as png slides to the size you need. Then in rev build a folder loading scheme into a single image with next prev buttons. I did over 500 slides this way using 75 different ppt presentations with transparent buttons over some of them for navigation etc. Interesting note: Keynote saves presentations in XML and you can get the Apple Schema online. That data can be brought into REV raw and use Rev's XML tools with it. (That would be a big project) HTH TOm On Feb 13, 2004, at 7:32 PM, Doug Lerner wrote: Has anybody ever tried a PPT - Rev stack conversion? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution Thomas J. McGrath III SCS 1000 Killarney Dr. Pittsburgh, PA 15234 412-885-8541 ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Digest from this list?
A co-worker of mine who subscribes to the digest form of this list says she has stopped receiving email. Does anybody know if there happens to be a problem with the digest? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
xml or other complete text representation of a control?
Is there some way of generating an xml or other complete text representation of a graphic or field or other control for writing to a file and then re-importing? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: How to make a stack into a substack
I believe if you just open them all up you can then, in the Inspector, just set the mainStack for each one. doug On 2/14/04 4:20 PM, Ken Norris [EMAIL PROTECTED] wrote: Howdy, Somehow, when I Saved in the IDE, one of my substacks ended up as a mainstack, i.e., a separate file in the same folder. How do I get it back into my mainstack as a substack, like it was before the goof? TIA, Ken N. ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: xml or other complete text representation of a control?
I don't get any result from the properties when I try this with graphic or field objects. Maybe that only works for custom properties? doug On 2/14/04 4:29 PM, Phil Davis [EMAIL PROTECTED] wrote: Isn't that pretty much what the SC-to-Rev converter does with SC projects? One part of the process might look something like: on convertControlToText put the properties of control x into tProps combine tProps with cr and = put tProps into url file:control-x-props end convertControlToText on convertTextToControl put url file:control-x-props into tProps split tProps with cr and = set the properties of the templateControl to tProps create control end convertTextToControl The above is pseudocode - it won't work as is, and a lot is left out, but it conveys the idea. Phil Davis -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Doug Lerner Sent: Friday, February 13, 2004 8:20 PM To: How to use Revolution Subject: xml or other complete text representation of a control? Is there some way of generating an xml or other complete text representation of a graphic or field or other control for writing to a file and then re-importing? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Dragging an image to a card?
On 2/14/04 3:37 PM, Yves COPPE [EMAIL PROTECTED] wrote: Le 13 févr. 04, à 23:56, Doug Lerner a écrit : I can browse for an image file and upload it and place the image in a card with the answer file dialog. Is there some way of doing this by dragging an image file to the card instead? That would be a nice option, and many applications allow you to do that... doug ___ It's very easy. Look in the archives, Klaus Major has written a sample stack that explains the process. Interesting. In his script (below) do you see what restricts the images from being dragged just to the image area, etc? on dragenter set the acceptdrop to true ## otherwise you could not drop anything... :-( end dragenter on dragdrop put the dragdata ### just put the path into the msg for info switch char -4 to -1 of the dragdata ### Here is just check the suffix of the dropped files... ### Much room for enhancements... ;-) case .gif case .jpg case .png set the filename of img 1 to the dragdata break case .txt put url(file: the dragdata) into fld 1 break case .rtf set the rtftext of fld 1 to url(file: the dragdata) break case .mov case .swf case .avi case .mpg case .wav case .aif set the filename of player 1 to the dragdata break end switch end dragdrop ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
distributing data files with builds
Say I wanted to include a text file, like a version history, with my standalone apps. 1. Is there an automatic way of having the file copied into all the builds' folders, or do I have to place them there manually? If so, I'll just keep the version history in a field or something... 2. When in the IDE I use the effective filepath of this stack to locate the external text file. For the standalone app, this didn't work. I guess I have to use the defaultFolder instead. Is there something I can use that will work for both the IDE and standalone app? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
New menu item supplanting old one
I added a Version History item to the Help menu using the Menu Builder. When I do this, the currently existing About menu item no longer shows up in the OS X File menu. If I delete the Version History item, it again shows up. Any idea what is happening? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: distributing data files with builds
Thanks, Tom. That helped. doug On 2/12/04 12:42 PM, Thomas McGrath III [EMAIL PROTECTED] wrote: Doug, I use the : if the environment is Development then effective... else -- we are in standalone fix the default folder... end if This way id doesn't matter where I'm at. Tom On Feb 11, 2004, at 9:31 PM, Doug Lerner wrote: Say I wanted to include a text file, like a version history, with my standalone apps. 1. Is there an automatic way of having the file copied into all the builds' folders, or do I have to place them there manually? If so, I'll just keep the version history in a field or something... 2. When in the IDE I use the effective filepath of this stack to locate the external text file. For the standalone app, this didn't work. I guess I have to use the defaultFolder instead. Is there something I can use that will work for both the IDE and standalone app? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution Thomas J. McGrath III SCS 1000 Killarney Dr. Pittsburgh, PA 15234 412-885-8541 ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: distributing data files with builds
On 2/12/04 12:51 PM, Monte Goulding [EMAIL PROTECTED] wrote: 1. Is there an automatic way of having the file copied into all the builds' folders, or do I have to place them there manually? If so, I'll just keep the version history in a field or something... This is in the new standalone builder. Something newer than 2.1.2? 2. When in the IDE I use the effective filepath of this stack to locate the external text file. For the standalone app, this didn't work. I guess I have to use the defaultFolder instead. Is there something I can use that will work for both the IDE and standalone app? Why doesn't the effective filepath of this stack work for you? I am not sure why in the case of standalone it doesn't work. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: distributing data files with builds
On 2/12/04 1:06 PM, Monte Goulding [EMAIL PROTECTED] wrote: This is in the new standalone builder. Something newer than 2.1.2? Yes... not released yet ;-) Well, that was helpful. :) doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: New menu item supplanting old one
On 2/12/04 3:05 PM, Jeanne A. E. DeVoto [EMAIL PROTECTED] wrote: At 12:51 PM +0900 2/12/04, Doug Lerner wrote: I added a Version History item to the Help menu using the Menu Builder. When I do this, the currently existing About menu item no longer shows up in the OS X File menu. If I delete the Version History item, it again shows up. Any idea what is happening? Are you adding the Version History item to the end of the Help menu? On Mac OS and OS X, Revolution deletes the last two items from the Help menu - it assumes the last two items are a separator line and the About item - so to add more items to the Help menu, you need to make sure the new items are added above this separator line. -- Thanks, Jeanne. That was it! doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Is Transcript's English orientation a plus or minus?
On 2/11/04 4:19 AM, Dar Scott [EMAIL PROTECTED] wrote: In my mind I am not separating xTalk from Transcript from Revolution. What is xTalk? [EMAIL PROTECTED] afraid to reveal my ignorance ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Is Transcript's English orientation a plus or minus?
On 2/9/04 4:31 PM, Thomas McGrath III [EMAIL PROTECTED] wrote: With REV I 'think' about what I want in english like terms and then start typing. I think that's what started the thread. Not all developers around the world think in English-like terms. :) doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Is Transcript's English orientation a plus or minus?
On 2/10/04 9:52 AM, Dar Scott [EMAIL PROTECTED] wrote: On Monday, February 9, 2004, at 05:43 PM, Doug Lerner wrote: thisStudent.age + thatStudent.age thisStudent[age] + thatStudent[age] ...is admittedly 6 characters over yours. Yes, associative arrays are essentially properties. In JavaScript you could actually write it either way. Usually the way you wrote it would be used if the property name itself were a dynamic value. But what about a similar notation for set the hilite of button thisButton of card thisCard of stack thatStack to true Something like thatStack.thisCard.button:thisButton.hilite = true might be convenient... doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Is Transcript's English orientation a plus or minus?
On 2/10/04 10:20 AM, Dar Scott [EMAIL PROTECTED] wrote: On Monday, February 9, 2004, at 06:08 PM, Doug Lerner wrote: thatStack.thisCard.button:thisButton.hilite = true Most of my object names are multiple words. Would that be handled like this? stack:Blueberry Martians.card:Surface Ambulance.button:Simulate Roll.hilite = true Could something like this be done? stack:getBestStack().card:savedCard().button:1.hilite = true It's looking more complicated than the current transcript method. :) doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Is Transcript's English orientation a plus or minus? (was Andy'scomments and positioning...)
On 2/9/04 8:02 AM, Dar Scott [EMAIL PROTECTED] wrote: On Sunday, February 8, 2004, at 04:11 AM, [EMAIL PROTECTED] wrote: - for non-english-speaking students, today, the javascript syntax = the flash syntax = the . syntax = the ECMA syntax = the standard syntax for programming = is not more difficult than the xtalk syntax. It is the same to teach and to learn the property of myObjetc than myObject.property. The argument xTalk is easy was true 10 years ago, no more today. I am sure of that even for 12-15 years french speaking kids ; i do not know for english-speaking kids. In responding to Freak L.'s suggestion, I had ignored this. If I read Claude's comments right, the English-like syntax adds nothing. This stops short of saying it gets in the way. Though I like the syntax for my own use and for teaching junior associates (it does help), I think the English orientation might be somewhat of a weakness in an global sense. I don't really know and I don't think I'm much of a judge. Dar Scott I was wonder that myself. If you were going to write for, say, Japanese users, instead of set the a of b to c you would say b no a wo c ni settei The grammar is practically opposite. It would be nice to also support a JavaScript-like: b.a = c notation doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Is Transcript's English orientation a plus or minus? (wasAndy'scomments and positioning...)
On 2/9/04 9:07 AM, Dar Scott [EMAIL PROTECTED] wrote: On Sunday, February 8, 2004, at 04:07 PM, Doug Lerner wrote: It would be nice to also support a JavaScript-like: b.a = c What could be a concrete example? (field Potatoes Required).textHeight = 20 Or like this? field(Potatoes Required).textHeight = 20 Just wondering. (this stack).textHeight =20 I think parentheses around the entire expression is more consistent with other languages. For example, in JavaScript you would create a new date object with new Date() You might get just the 4-digit year with now = new Date(); year = now.getFullYear(); or you might just do it in one step like: year = (new Date()).getFullYear(); Of course with Transcript, the = operator means the same thing that the == operator means in other languages. That probably can't be changed anymore or everything wouldn't be backwards compatible. So some other kind of assignment operator would be needed like b.a := c (looks like an arrow pointing to the left) doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: slow revVideoFrameImage
But then wouldn't there be the same pause while the frame grabbed data is retrieved and brought into the main app? Anyway, it does have to be one integrated app for what I am doing... doug On 2/4/04 7:38 PM, Frank Leahy [EMAIL PROTECTED] wrote: Does the frame grabbing code have to be in the same app? What about building a second app that does just frame grabbing -- that way the user could put it in the background and keep working in their foreground app. -- Frank In this app, at the same time people are doing other things, like text input, etc. But during revVideoFrameImage everything else stops. Is there a way of not having revVideoFrameImage itself hog the whole cpu when it does its frame grab? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Labels and labeled Fields
On 2/4/04 11:15 PM, Rob Cozens [EMAIL PROTECTED] wrote: Presently, I create one label field one data field, copy them, paste the pair as often as needed, and rename the fields. That's how I do it too. That isn't so bad, but getting everything aligned nice afterwards is tedious. The worst part of that is the align group feature. There is no undo! :) doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
video sample stack
You know that video sample stack included with Revolution? It works on my OS X system, but on a co-workers system the video grabber window never opens up. Both are the same OS X 10.3.1 systems. Both of us have an iSight camera. Both of us can use the iSight for iChat AV. But the stack works on mine and not on his. Anybody know of more things that can be debugged with this? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Video_Input.rev and OS X 10.3.2?
I am running OS X 10.3.1. If I try the Video_Input.rev stack in the Revolution Sample Stacks folder it works. But a co-worker is running 10.3.2 and he cannot get the video grabber to open. Can anybody else confirm that that sample stack runs properly in 10.3.2? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
slow revVideoFrameImage
I am calling revVideoFrameImage periodically and sending the grabbed frame over a socket. The problem is that the revVideoFrameImage command itself takes a noticeable amount of time: 1/4 - 1/2 second on my machine, 1 second or more on slower machines. In this app, at the same time people are doing other things, like text input, etc. But during revVideoFrameImage everything else stops. Is there a way of not having revVideoFrameImage itself hog the whole cpu when it does its frame grab? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: slow revVideoFrameImage
On 2/4/04 12:47 PM, Thomas McGrath III [EMAIL PROTECTED] wrote: Are you sure it is the reVideoFrameImage that is the hog? Yes. Because if it is the send then you might need a with messages or if it is a socket issue then you might need a with messages I am already doing the socket stuff with with messages and can send and receive a 1MB file with no slowdown in the app at all, even if I display an updating progress bar. The with messages thing is great. So it seems the revVideoFrameImage command itself is causing the app to pause while it finishes the video grab. doug I actually can't remember which needs it. HTH Tom On Feb 3, 2004, at 10:18 PM, Doug Lerner wrote: I am calling revVideoFrameImage periodically and sending the grabbed frame over a socket. The problem is that the revVideoFrameImage command itself takes a noticeable amount of time: 1/4 - 1/2 second on my machine, 1 second or more on slower machines. In this app, at the same time people are doing other things, like text input, etc. But during revVideoFrameImage everything else stops. Is there a way of not having revVideoFrameImage itself hog the whole cpu when it does its frame grab? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution Thomas J. McGrath III SCS 1000 Killarney Dr. Pittsburgh, PA 15234 412-885-8541 ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: slow revVideoFrameImage
On 2/4/04 1:47 PM, J. Landman Gay [EMAIL PROTECTED] wrote: On 2/3/04 9:51 PM, Doug Lerner wrote: So it seems the revVideoFrameImage command itself is causing the app to pause while it finishes the video grab. If I remember right, all externals act like that. When an external is called, MetaCard passes control to the external and pauses until it returns. What is MetaCard? A former name of Revolution? So, there is no way around this problem? Is there any way of capturing a video movie into a variable instead of a file? Maybe I could then chop out a frame and reset the variable instead...? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Going crazy with closing a stack
That's almost what I ended up doing. Instead of running that stack as a substack, I made it its own stack and moved all the handlers except for openStack and closeStack elsewhere. It seems to be working this way. Thanks, dogu On 2/2/04 4:57 PM, Frank Leahy [EMAIL PROTECTED] wrote: Doug, I'm guessing that other stacks of yours are getting closeStack messages, right? If so then I'm pretty sure you're not getting a closeStack because of something you're doing. Maybe you forgot to pass menuPick, or pass some other message that is keep RunRev from sending you the closeStack messages. Whatever it is, at this point I'd create a new stack, place just this controller you're trying to use on it -- with no other scripts in the stack except the closeStack -- and see if a closeStack handler gets called. Then add your other scripts one at a time (or a bunch at a time) until you see it stop getting called again. It's great to use the list as a sounding board, but sometimes the only way to do debugging is to return to a zero baseline and actually do the debugging. Good luck, -- Frank On Monday, February 2, 2004, at 02:30 AM, [EMAIL PROTECTED] wrote: Thanks for your note, Tom. Unfortunately, I can't move this stuff into the startup and shutdown handlers because this is just one of several stacks that are open while running the app and doesn't take place at shutdown. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
What does the IDE know that the standalone doesn't know?
This is a hard one to debug, because it works just fine in the IDE. But it doesn't in the standalone. Both OS X. In the IDE, I grab a video frame and create an image in a stack containing that frame. Works just fine. But in the standalone app, just a white image appears. I am including the video library (other) and the video grabber window itself works just fine in the standalone app. Are there any general guidelines about what the IDE environment knows vs what the standalone app knows that might help debug something like this? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Setting Stack's Location
You can create a moveStack handler. In the handler, change the position of the other stack. doug On 2/3/04 1:16 PM, Bojsza [EMAIL PROTECTED] wrote: It seems that this should be fairly easy ...I am trying to set a small sized stack at the location of an image of another stack that is much larger. I want the smaller stack to act as if it was an object of the larger stack (maintaining its position if the larger stack is moved, always on top of the larger stack etc). Is there a proper way to approach this? thanks, Glen ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: What does the IDE know that the standalone doesn't know?
Well, I stumbled upon the error in my script causing the problem and patched it. I still don't know why the IDE was showing a different value. The value in the standalone app was actually correct, though. doug On 2/3/04 11:33 AM, Doug Lerner [EMAIL PROTECTED] wrote: This is a hard one to debug, because it works just fine in the IDE. But it doesn't in the standalone. Both OS X. In the IDE, I grab a video frame and create an image in a stack containing that frame. Works just fine. But in the standalone app, just a white image appears. I am including the video library (other) and the video grabber window itself works just fine in the standalone app. Are there any general guidelines about what the IDE environment knows vs what the standalone app knows that might help debug something like this? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
closeStack and the message path question
I have a stack, and a substack with the following handlers in it: stack closeStackRequest closeStack substack closeStack Since the substack does not have its own closeStackRequest it seems to be taking the one from the parent stack. But after the parent stack's closeStackRequest is done, the closeStack that apepars to get executed is the closeStack handler in the parent stack, rather than the one in the substack. Is that the way it's supposed to work? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Going crazy with closing a stack
When I close a stack in which the video grabber is embedded, I am trying to clean up as follows: on closeStack global recordvideo answer closing stack the short name of this stack put false into recordvideo revCloseVideoGrabber end closeStack Putting false into recordvideo should stop the repeat loop needed for QT, as per the sample stack and docs. revCloseVideoGrabber should close the video grabber. The answer command should at least acknowledge that the stack is being closed. BUT... even if I close the stack manually, the answer dialog doesn't even appear. The closeStack handler is just not being called. And it is a handler local to the stack itself! What might block the closeStack message from being sent to this stack handler? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Going crazy with closing a stack
On 2/2/04 6:50 AM, Wilhelm Sanke [EMAIL PROTECTED] wrote: On Mon Feb 2 Doug Lerner doug at webcrossing.com wrote: When I close a stack in which the video grabber is embedded, I am trying to clean up as follows: (snip) BUT... even if I close the stack manually, the answer dialog doesn't even appear. The closeStack handler is just not being called. And it is a handler local to the stack itself! What might block the closeStack message from being sent to this stack handler? Thanks, doug Probably this is related to the problem Revolution has in handling greater amounts of data. I have various stacks here that contain a larger number of controls on one card. A stack with a card containing 1500 controls takes about 10 minutes to close - on my G4 Powerbook with 667 MHz. Metacard closes the same stack immediately. This stack only has two controls on it - an image and a button. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Going crazy with closing a stack
On 2/2/04 7:44 AM, Frank Leahy [EMAIL PROTECTED] wrote: On Sunday, February 1, 2004, at 10:02 PM, [EMAIL PROTECTED] wrote: A stack with a card containing 1500 controls takes about 10 minutes to close - on my G4 Powerbook with 667 MHz. If you are doing something with those controls when you close the stack (e.g. moving them, or resetting any values), that can take a very long time. Either way, try setting lock screen and lock messages in your closeStack handler and see if that speeds things up. My problem doesn't have anything to do with excessive controls. There are just two in the stack. I am sure the closeStack handler itself is just not being run, even when manually closing the stack. The revCloseVideoGrabber isn't happening, which is what got me started on this. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Going crazy with closing a stack
On 2/2/04 12:55 PM, J. Landman Gay [EMAIL PROTECTED] wrote: On 2/1/04 8:20 PM, Thomas McGrath III wrote: On Feb 1, 2004, at 9:05 PM, Doug Lerner wrote: I don't see how there could possibly be. This is a substack and inside the substack's script there is the closeStack handler. Doug, that was exactly what I had. A closeStack in a substack that I wanted to work when I closed the substack but instead I think the main stack was grabbing the closeStack and not the substack even though the closestack message was 'local' to the substack. If that's true, then it sounds like a bug. I just made a simple set of test stacks, though, and I couldn't reproduce the behavior. There must be something else going on. My main stack has one stack handler: on closeStack answer the target end closeStack Substack has one stack handler: on closeStack put closing sub end closeStack I click the closebox in the substack and closing sub appears in the message box. I never get an answer dialog. That's what I want to happen here too. :) [EMAIL PROTECTED] ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Going crazy with closing a stack
On 2/2/04 1:24 PM, J. Landman Gay [EMAIL PROTECTED] wrote: On 2/1/04 10:02 PM, Doug Lerner wrote: I click the closebox in the substack and closing sub appears in the message box. I never get an answer dialog. That's what I want to happen here too. :) So there must be something else happening. Comment out all lines in both stack's closestack handlers, with the exception of a single line in each (pick one or write one that can stand independently and doesn't rely on anything else.) If it works okay, then start adding pieces of the handler back in until you reproduce the problem. Then tell us what that piece is. That's why I put the answer command as the first line of the closeStack hander - to see if the handler was being called or not. But it's not. Except sometimes. And the sometimes seems to have something to do with the state of the video grabber window. Are there any extra commands that can tell us whether the video grabber window is even present or not? Also, what is that first (and undocumented) parameter to revInitializeVideoGrabber, as in the video stack example: revInitializeVideoGrabber the short name of this stack,qt,iRect for? The docs only show 2 parameters. I think both these issues are connected somehow because I don't have similar problems when closing other stack windows. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Going crazy with closing a stack
I'm spending too much time on this one crazy closeStack message problem, so for the meantime I've put in the following work-around which is at least stable: * I have a button on the parent stack that is supposed to open/close the video grabber window-and-stack. In there I put: chatVideoPreviewOff revCloseVideoGrabber close stack vgName The closeChat message is still not being sent to the video grabber stack, but the stack closes. * In the video grabber stack I added on closeStackRequest -- block this stack from being closed from the window close button end closeStackRequest This blocks the stack from being manually closed, which is a little grody, but since the openStack handler doesn't get called reliably there is no choice. I must have users close the stack via the button in the parent stack. Interesting enough, even with this closeStackRequest handler here, the close stack vgName command above *does* close the stack. I wonder why the closeStackRequest doesn't block that as well. Strange all around. But at least this combination works - you can open and close the video grabber stack as much as you want by checking/unchecking the box in the parent stack. I'll come back to this issue again at another time. Thanks for all your suggestions. And if anybody has any extra ideas, please let me know! Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Some advice on video frame grabbing
I have a question for you experts. I basically copied scripts from the sample video stack (where this works correctly), and most of it seems to be working in my stack. But when I try to grab a frame from the video grabber window it does not display in the target image after I use the set imageData command. Without boring you with all my code, this is the snippet that grabs the frame and sets the imageData: put empty into videoimagedata put the width of image userPortrait of stack portraitName into userImageWidth put the height of image userPortrait of stack portraitName into userImageHeight revVideoFrameImage userImageWidth, userImageHeight, videoimagedata set the imageData of image userPortrait of stack portraitName to videoimagedata Seems vanilla enough, right? The only thing I am doing different from the sample scripts is that my target image happens to be in another stack. All the stacks/windows are open and everything has the correct height and width set. If I log userImageWidth, userImageHeight and the captured videoimagedata, there are what seem to be correct values in all of them. Well, the height and width anyway seem correct. I can't visually confirm that the value of videoimagedata is correct, but it is the correct size - userImageWidth x userImageHeight x 4. If I put image userPortrait there is what appears to be PNG data in there. If I check the number of characters of the imageData of image userPortrait there is the correct 57,600 characters in there (the image is 120x120). And the paintCompression of image userPortrait is png in my stack and also in the sample stack. But: * No image is displayed (even though it is displayed in the video grabber window of course) * If I put the imageData of image userPortrait the value displayed looks empty in the message box - not even garbage characters. Any ideas? Thanks! doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Some advice on video frame grabbing
On 1/31/04 5:57 PM, Chipp Walters [EMAIL PROTECTED] wrote: Doug, I haven't used video frame grabbing, but I might suggest some things to look at: When you call: revVideoFrameImage userImageWidth, userImageHeight, videoimagedata you might want to include before it: set the defaultStack to theStackWithTheVideo You mean the stack with the video grabber window in it? (I assume it is not a palette, if it is, it might NOT work at all) It's not a palette. Also, see if you can do it all on the same stack as a test (just like the example). If it does work, then you can isolate your frontmost stack issues from there. Well, as a test I can do that in the sample stack. It would be hard to do as a test in my current app now considering how complicated it has gotten. But weirdest of all - it worked one time! But I couldn't repeat it after that. Also, sometimes the revCloseVideoGrabber that I call when I close the video grabber window (in closeStack) does not seem to get sent and I need to invoke it manually. Thanks, doug hope you get it working, Chipp On Jan 31, 2004, at 2:38 AM, Doug Lerner wrote: I have a question for you experts. I basically copied scripts from the sample video stack (where this works correctly), and most of it seems to be working in my stack. But when I try to grab a frame from the video grabber window it does not display in the target image after I use the set imageData command. Without boring you with all my code, this is the snippet that grabs the frame and sets the imageData: put empty into videoimagedata put the width of image userPortrait of stack portraitName into userImageWidth put the height of image userPortrait of stack portraitName into userImageHeight revVideoFrameImage userImageWidth, userImageHeight, videoimagedata set the imageData of image userPortrait of stack portraitName to videoimagedata Seems vanilla enough, right? The only thing I am doing different from the sample scripts is that my target image happens to be in another stack. All the stacks/windows are open and everything has the correct height and width set. If I log userImageWidth, userImageHeight and the captured videoimagedata, there are what seem to be correct values in all of them. Well, the height and width anyway seem correct. I can't visually confirm that the value of videoimagedata is correct, but it is the correct size - userImageWidth x userImageHeight x 4. If I put image userPortrait there is what appears to be PNG data in there. If I check the number of characters of the imageData of image userPortrait there is the correct 57,600 characters in there (the image is 120x120). And the paintCompression of image userPortrait is png in my stack and also in the sample stack. But: * No image is displayed (even though it is displayed in the video grabber window of course) * If I put the imageData of image userPortrait the value displayed looks empty in the message box - not even garbage characters. Any ideas? Thanks! doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Some advice on video frame grabbing
On 1/31/04 6:14 PM, Chipp Walters [EMAIL PROTECTED] wrote: set the defaultStack to theStackWithTheVideo You mean the stack with the video grabber window in it? Yep Well, as a test I can do that in the sample stack. It would be hard to do as a test in my current app now considering how complicated it has gotten. But weirdest of all - it worked one time! But I couldn't repeat it after that. Also, sometimes the revCloseVideoGrabber that I call when I close the video grabber window (in closeStack) does not seem to get sent and I need to invoke it manually. Still sounds like a defaultStack or topStack problem to me. Can't you just grow the window and add an image to test? Yes, that is a good idea. That would be easy to do. I think I am having a problem with mixed signals though. For example, I am starting my repeat loop for QT inside openStack. I think I'll try and move things around first. By the by, the video grabber doesn't *really* reside in a stack anyway - it's a special sort of a global window - so I don't see how defaultStack settings could apply. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Some advice on video frame grabbing
There are several things happening that are strange: Weird thing 1 - If I close the stack in which I am embedding the video grabber window, sometimes the stack's closeStack handler is not being called. I know it isn't being called because it is doing various things, like setting the hilite of a button in another stack and doing revCloseVideoGrabber and sometimes those messages are just not being sent. When would a stack not execute it's own local closeStack handler even though the stack is being closed? Weird thing 2 - You know my original problem of the grabbed frame not showing up in the target image? If I quit the IDE, then the first time I try it it will work. But for subsequent times it will not work. This is 100% reproducible. [EMAIL PROTECTED] ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
when is a title not a title?
I'm having lots of weird things happen this evening. :) I set the title of a stack to xxx. If I put the title of stack thisStack it returns xxx If I look at the stack inspector for the stack it correctly says the title of the stack is xxx But the title in the titlebar is different. Agh! Anybody ever see that before? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Some advice on video frame grabbing
On 1/31/04 7:12 PM, Doug Lerner [EMAIL PROTECTED] wrote: With regard to Weird thing 2 - You know my original problem of the grabbed frame not showing up in the target image? If I quit the IDE, then the first time I try it it will work. But for subsequent times it will not work. This is 100% reproducible. I'm narrowing down the problem. The image is actually there! If I select it with the pointer tool I can't see it, but... if I select the image with the object inspector the image shows up. What gives? Strangeness all around. I even got a Rev error in selecting image dialog pop up once... I wonder if there is something wrong with my IDE... doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
revVideoFrameImage pause
It seems that the revVideoFrameImage command takes a noticeable amount of time - like a quarter of a second or more - to work. If you are doing other things during that time, like text input, it is very noticeable because your other interaction pauses. What I'm trying to do is capture a frame every 5 seconds so I can send it somewhere. But I want to keep my interactivity as high as possible. Is there a way to do captures like this without adversely affecting all the other events? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: when is a title not a title?
On 1/31/04 10:51 PM, Malte Brill [EMAIL PROTECTED] wrote: Hi Doug, set the title of a stack to xxx creates a custom property called title If you want to change the titlebar you might either set the name of the stack or the label of the stack. Like: set the label of this stack to blah Actually, title is the standard property - it's not a custom property. That part was right. It turned out to be a weirdness with multiple stacks of the same name existing at the same time. doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Question about the newImage message
The docs say: Sent to a new image right after it¹s created. What is the definition of created? It seems that when I clone a stack that contains an image that the newImage message is sent. Is that right? It seems that the image was previously created...? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Can't delete option question...
A certain stack is closed and I want to delete it in a script. My code looks like: if vgName is not among the lines of the openStacks then if exists(stack vgName) then delete stack vgName end if end if This causes a can't delete object error when run at the delete stack line. But... I can delete that stack in the message box. Any ideas why this would be? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Can't delete option question...
What do you mean by currently running? The stack is actually closed. It doesn't appear in the openStacks. It's actually been closed for a while at the time that message is sent. doug On 2/1/04 2:23 PM, Ken Ray [EMAIL PROTECTED] wrote: Most likely you're trying to delete the stack that is currently running. The message box can do it because it is a different stack. You could try to: send delete stack quote vgName quote to me in 20 milliseconds which would give enough time for the rest of the script to run before the message hit. Ken Ray Sons of Thunder Software Email: [EMAIL PROTECTED] Web Site: http://www.sonsothunder.com/ -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Doug Lerner Sent: Saturday, January 31, 2004 10:52 PM To: How to use Revolution Subject: Can't delete option question... A certain stack is closed and I want to delete it in a script. My code looks like: if vgName is not among the lines of the openStacks then if exists(stack vgName) then delete stack vgName end if end if This causes a can't delete object error when run at the delete stack line. But... I can delete that stack in the message box. Any ideas why this would be? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use- revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Suppressing a message?
I found the messages that take place when images and graphics are deleted: deleteGraphic and deleteImage (of course). I wonder why they don't appear in the Message Watcher window though? Anyway, one question I have it - there are two ways of deleting a message - if I do it manually or if a handler does it. In the case of the handler, I want to suppress the normal deleteGraphic message from being sent. Is there a way to do that? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Suppressing a message?
I notice that, but wonder about the timing of how that works. According to the docs, the deleteGraphic message (for example) is sent when a graphic removed from the stack. But when, message-timing-wise, is it removed from the stack? If I say lock messages delete graphic a unlock messages Have I really blocked the deleteGraphic message from being sent? Or is it being sent after the messages are unlocked? doug On 1/30/04 7:44 PM, Brian Yennie [EMAIL PROTECTED] wrote: I've never tried it for this sort of message, but generally the trick is: lock messages ... do something unlock messages HTH, Brian Anyway, one question I have it - there are two ways of deleting a message - if I do it manually or if a handler does it. In the case of the handler, I want to suppress the normal deleteGraphic message from being sent. Is there a way to do that? ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
web cam capture
Just some general questions to the group - I notice that Revolution has video camera capturing features. It seems that this would be hard to implement across platforms, different camera models and different interfaces (USB and Firewire - like iSight). How do people find the robustness and cross-platform/cross-product usability of the video capture features? Does this work as well with webcams as with video cameras? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
revInitializeVideoGrabber question
In the IDE, if I try the docs example: revInitializeVideoGrabber QT,100,100,200,200 in the message window, the following error occurs: Message execution error: Error description: send: error in message expression Am I getting ahead of myself? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Suppressing a message?
On 1/30/04 9:10 PM, Jan Schenkel [EMAIL PROTECTED] wrote: --- Doug Lerner [EMAIL PROTECTED] wrote: I notice that, but wonder about the timing of how that works. According to the docs, the deleteGraphic message (for example) is sent when a graphic removed from the stack. But when, message-timing-wise, is it removed from the stack? If I say lock messages delete graphic a unlock messages Have I really blocked the deleteGraphic message from being sent? Or is it being sent after the messages are unlocked? doug Hi Doug, When you 'lock messages', the engine will not send messages, but it doesn't save them for later use, either. So there's no need to worry that it will be sent after you 'unlock messages' But... does the above example block all messages associated with delete graphic? Why would it? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Suppressing a message?
Thanks for your reply. But... how do you know which are the messages that are blocked? For example, the following seems logical too: 1. lock messages (all messages are blocked) 2. delete graphic a - graphic gets deleted 3. unlock messages - messages continue again 4. the unlock messages took place essentially instantly after the graphic was deleted, but before the deleteGraphic message was sent (since it is a separate message that is sent when the graphic is actually removed from the stack). That is guaranteed not to happen ever? The lock messages locks all the messages *associated with* the deletion of the graphic, even if there are dozens of rev messages sent out after the graphic is deleted? That is what I wanted to clarify. doug On 1/30/04 10:48 PM, Jan Schenkel [EMAIL PROTECTED] wrote: --- Doug Lerner [EMAIL PROTECTED] wrote: But... does the above example block all messages associated with delete graphic? Why would it? doug When you do a 'lock messages' the engine will eat _all_ the messages it would have sent, including the 'deleteGraphic' message. Let's explain this with the following script : -- on mouseUp lock messages go card 3 of stack Foo delete graphic Bar go back unlock messages end mouseUp -- As soon as you lock the messages, the engine will no longer send *any* messages, until you unlock or the engine reaches the end of the handler. So when you go card 3 of stack Foo the engine won't send 'closeCard' or 'openCard' or anything like that. And when you delete graphic Bar the graphic will be deleted, but you won't get a 'deleteGraphic' message. And when you finally go back again the engine won't send 'closeCard' or 'openCard' or anything of the sort. In short : it just blocks *all* messages. Hope this clarified things a bit, Jan Schenkel. = As we grow older, we grow both wiser and more foolish at the same time. (La Rochefoucauld) __ Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! http://webhosting.yahoo.com/ps/sb/ ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: web cam capture
Thanks, Tom. I'll try some more. My initial tests failed, but I'll keep at it. By the by, Apple does say that iSight is meant to be accessed by other apps. That is their excuse for not bundling iChat with it, which so many Jaguar users complain about. doug On 1/31/04 12:37 AM, Thomas McGrath III [EMAIL PROTECTED] wrote: doug, The video capabilities were camera independent so IF the camera can be accessed by 'other' programs it probably can be accessed by REV. In the case of iSight which apple says is not meant to be accessed by other apps, REV can see it just fine AND control all kinds of features in it that can't even be controlled by apples own apps. So if the driver for the camera is 'standard' enough to work in say oculus or some other web app then REV can definitely handle it. I had great results after playing around with it a little bit. tom On Jan 30, 2004, at 6:12 AM, Doug Lerner wrote: Just some general questions to the group - I notice that Revolution has video camera capturing features. It seems that this would be hard to implement across platforms, different camera models and different interfaces (USB and Firewire - like iSight). How do people find the robustness and cross-platform/cross-product usability of the video capture features? Does this work as well with webcams as with video cameras? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution Thomas J. McGrath III SCS 1000 Killarney Dr. Pittsburgh, PA 15234 412-885-8541 ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
avoiding weird effects when moving the video grabber window
When the video grabber window first appears it is in the upper left corner and then jumps into my step because I have set its rectangle in the openStack handler. Similarly, when I move the stack containing the video grabber, first the stack moves and then the video grabber comes after it. Any way of avoiding these two odd effects? Thanks, doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Question about the revVideoGrabIdle loop
If you have the following in a handler: repeat while recordvideo is true revVideoGrabIdle wait for 1 millisecond with messages end repeat then the handler never finishes, right? I have this in my openStack handler. It seems to work ok, but is it ok to never actually finish the openStack handler? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Some strange Rev parsing problem?
Rev can't seem to find the object referred to in this statement: set the textStyle of word 1 to 2 of the last line of field chatField of stack chat550 to bold But just: word 1 to 2 of the last line of field chatField of stack chat550 displays just fine. Did the complexity of the statement create some sort of ambiguity that confused the parser? doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Some strange Rev parsing problem?
Bracketing doesn't help. I've narrowed it down to an even simpler example: set the textStyle of word 1 of the last line of field chatField to bold does not work even though set the textStyle of the last line of field chatField to bold does work. I think setting a single word chunk's textStyle was supposed to work... doug ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution