Xray ( The AdminTool )
Latest News
- 7/3/2007 - Bug Fix
- 256 Level recursion bug finally nailed. It was in the ClassPath class and was a very simple fix. ClassPath, by Hans Wichman, is used for reflection in Xray and provides those nice, neat little class names in the treeview and Property Inspector. Download 1.6.3 connector from the links below.
- New LogViewer component replaces Xray’s output - Thanks to Marc Hughes for creating such a killer component and being cool enough to integrate it with Xray!
includes:
- Quickly append and scroll through text data (IE: logging doesn’t slow down Xray)
- Debug level filtering
- Text filtering / package filtering
- Highlighting
- Search
- Xray is a finalist at FlashForward for Technical Merrit!
What is XRay?
Xray (The AdminTool) is a “snapshot viewer” of the current state of your Flash application without impacting the performance or the file size of your application. Xray’s true nature is to look into the very guts of the Flash application and disolve the 2d myth you see on screen to a 3D tangible entity you can truly crawl through.
Xray is brought to you by Blitz Labs.
Links
SVN
http://svn1.cvsdude.com/osflash/xray
Wiki
http://mirror1.cvsdude.com/trac/osflash/xray/wiki
API:
Xray Docs
Email List:
Email List
NOTE: The Interface source files are under the Flex directory in SVN
Downloads
Interface (v2.0 - 6.1.2006)
- Old 1.2.5 interface:
Connectors (12.12.2006)
- Latest component package for AS2 (xray_conn_1.6.3.mxp)
- Latest component package for AS1 (xray_component_as1.mxp)
- Connector-only package for MTASC, SFWMill, etc.
XRayViewer
- XRayViewer - An addon AIR based tool that lets you inspect loaded AVM2 swfs without modifying them.
Usage (9.1.2006)
Logger (1.6.1 connector required)
To make it as easy as possible for Developers and Designers to get into using Xray, I’ve continued support for _global.tt() for simple object dumps and tracing.
For more complex logging with levels and package filtering, i’ve included XrayLogger with the component and made it available via “_global.Xray.debug/info/warn/error/fatal()”.
For the MTASC/FLASC users, I’ve also included a new MtascUtility.as class for including file/line number information. You can get that in the Connector-only package.
- Samples with Xray’s connector
_global.Xray.xrayLogger.debug("myObj"[, obj]); _global.Xray.xrayLogger.info("myObj"[, obj]); _global.Xray.xrayLogger.warn("myObj"[, obj]); _global.Xray.xrayLogger.error("myObj"[, obj]); _global.Xray.xrayLogger.fatal("myObj"[, obj]);
- Usage with Xray logger classes only
//Set log level with: import com.blitzagency.xray.logger.LogManager; LogManager.setLevel(0); //debug=0, info=1, warn=2, error=3, fatal=4 can be used logger = LogManager.getLogger("com.blitzagency.xray.logger.XrayLogger"); logger.debug("testing Logger", obj); logger.info("testing Logger", obj); logger.warn("testing Logger", obj); logger.error("testing Logger", obj); logger.fatal("testing Logger", obj);
trace usage with MTASC/FLASC
- MTASC’s -trace switch set to:
-trace com.blitzagency.xray.util.MtascUtility.trace
- Then, trace with an XrayLog object:
import com.blitzagency.xray.logger.XrayLog; log= new XrayLog(); trace(log.debug("stringMessage"[, object])); trace(log.info("stringMessage"[, object])); trace(log.warn("stringMessage"[, object])); trace(log.error("stringMessage"[, object])); trace(log.fatal("stringMessage"[, object])); trace("What's obj got!?");
Wishlist
Interface
- Multiple application communications (LC pool)
- Add external SWF tools into tabs for use within Xray (IE: FlashInspector)
Connector
- Turn on/off output to Flash IDE trace()
License
Xray is licensed under the MIT Open Source License:
http://mirror1.cvsdude.com/trac/osflash/xray/browser/license.txt
How It Works
Xray has 2 parts that work together:
- The interface (Standalone application)
- The connector (to be published in your SWF)
Xray works over what we call in the Flash world a “localConnection“. You simply install the component (or use the connectorOnly package for MTASC/FAME), drag it into your _level0 FLA on the root timeline (the file that’s initially loaded with the site/application) and publish. Then, start the Interface application and you’re up and running! It’s that simple!
Benefits
- 16k connector file size - very small
- Stand Alone Interface/controller. Minimizes impact on CPU performance of your application. Flash uses a single thread to the CPU, so having this external to the application means that the Interface has it’s own memory space and thread.
- Works when published in the FlashIDE, local player, web browser. This means that you can debug your application at runtime from its intended location.
Features
Note: “object” in this list might mean a literal Object, textField, class, button, sound object, video object etc)
- View physical parent/child relationships of all your objects/movieclips in the treeview
- View all properties/methods associated with an object/movieclip
- Drill down through any objects/movieclips/arrays in the Datagrid
- Execute actionscript at runtime. Call any of your methods from the interface at runtime!
- Control at runtime:
- MovieClips - Edit all properties, including: Rotate, scale, move, opacity, properties, play, gotoAndPlay/Stop/labelName
- TextFields - same as movieclips, as well as edit text, HTML text
- Buttons - same as movieclips
- video objects (NetStream) - play, pause, stop, view properties in realtime as video plays
- Sound objects - play, stop, set loops, view ID3 information, all sound properties.
- Use the _global.tt() to send any object/property to the output panel. Xray.trace() will recurse any object/array and display in the output panel a tabbed relational view of the object/array.
- Use the search tool to search the output returned.
- History info - use property settings saved in the history in your FLA or to reset your application to a specific state
- Filters Panel - use Flash8 filters at run time and copy/paste the code for use in your FLA
Requirements
There are 2 connectors available: MX2004/AS2 and MX/AS1 versions. Please be sure to download the correct version for your applications.
Using SVN to get the source
Xray Video Tutorials!
Team Members
- John Grden (creator)
- Ivan Todorov BLITZ
- Chris Allen
- Karina Steffens - neo-archaic.net karina@neo-archaic.net
- Erik Westra (aka EECOLOR)
- Peter Ginneberge (aka Muzak) - MuzakDeezign.com - p.ginneberge@telenet.be
- Mark Gardner (aka RuneImp) - flashstuff.net
- Ryan Mattes - ryanm@horsefish.net
Thank You's / Acknowledgments
- Karina Steffens - UI Creator
- Chris Allen - Connector Only Package
- Mark Gardner - original email list!
- Erik Westra - DragableMovieClip code
- Ivan Todorov - being cool ;)
- Danny Patterson - Event Framework - Flash/Web Consultant
You guys ROCK \m/ _|_ \m/
xray.txt · Last modified: 2008/06/15 13:51 by mhughes




