Xray ( The AdminTool ) becomes opensource

Many of us used Admin tool for debugging flash movies in the past, being a great debugging tool (for me much better than the one provided in flash).
Now Admin Tool is an opensource project!
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 dissolve the 2d myth you see on screen to a 3D tangible entity you can truly crawl through.
The downloads provided with Xray are:

Other links:

More info available at: http://labs.blitzagency.com/?cat=2
http://www.osflash.org/doku.php?id=xray_the_admintool

SplitPane component

I discovered today a genial component by Joan Garnet, the SplitPane component.
It uses the Macromedia ScrollPane component as basis and it has lot of really useful features.
Some of them I read from the blog post:

  • nested of SplitPanes within each others
  • orientation: horizontal or vertical
  • enable/disable component
  • event driven component
  • max/min width/height
  • separator state (expanded/collapsed)
  • separador size
  • references to each component of the panel
  • expansion direction ( leftRight – rightLeft, topBottom – bottomTop )

See a demo of the SplitPane component here
http://www.joangarnet.com/…/release_v2_fram_1.php

New Flash Player security rules

Erica Norton of the Flash Player Team wrote an interesting post in the flashcoders list about the upcoming changes in the Flash 8 security restrictions.
I’m copying here parts of that post:
(cut)
In Flash Player 8, the rules are:

  • local with file system content may only communicate with other local content
  • local with networking content may only communicate with remote content
  • trusted content may communicate with both local and remote content

(cut)
The first 2 types will be publishable. For those that do not upgrade their Authoring tool, we will be providing a command line utility to convert SWFs to local with networking SWFs (and vice versa).
There will be 2 mechanisms for trusting content.
The first, many of you have seen: the Settings Manager. The second method is in the form of .cfg files placed in a specific location for the Flash Player to read.
This will enable distributors of local content, via an installer for example, to install a .cfg file to the appropriate location, thereby trusting the content. One could also provide an updater to an already distributed bit of content in order to trust those documents this way.
Please note, that one may trust a directory, which trusts all content recursively below that directory.
(cut)
There will also be an API available in ActionScript in order to detect which of the 4 sandbox types that the SWF is (remote or local: local with file system, local with networking, trusted) so that in ActionScript you can do one thing or another.

http://chattyfig.figleaf.com/pipermail/flashcoders/2005-July/145237.html

Flade, opensource 2D physic engine

Today Davide shows to me this link to a new opensource project regarding Flash.
It’s a “free library for simulating 2D physics in Flash using Verlet integration. It currently features particles, stick & angular constraints, wheels, and surfaces composed of line segments. Designed primarily for games with a goal of speed and ease of use”
I immediately downloaded the available “alpha” release and made a first test..

[attachments docid=646 fields=caption,description force_saveas=”1″ logged_users=”0″]

I don’t know if the project is still alive and which is the developement status, but it looks very promising.
…And here the code used for the example above:

var psystem = new ParticleSystem();
psystem.setDamping(1.0);
psystem.setGravity(0.0, 0.4);
// cooefficient of restitution
psystem.setKfr(0.1);
// surface friction for particles
psystem.setFriction(0.5);
// surfaces
var sA = new Surface(new Point(0, 0), new Point(1, 200));
sA.setIsOrientH(false);
psystem.addSurface(sA);
var s0 = new Surface(new Point(1, 200), new Point(100, 200));
psystem.addSurface(s0);
var s2 = new Surface(new Point(220, 170), new Point(300, 200));
psystem.addSurface(s2);
var s3 = new Surface(new Point(300, 200), new Point(400, 150));
psystem.addSurface(s3);
var sB = new Surface(new Point(399, 150), new Point(399, 0));
sB.setIsOrientH(false);
psystem.addSurface(sB);
// circle surface
var circA = new CircleSurface(170, 220, 70);
psystem.addSurface(circA);
var leftX  = 10;
var rightX = 50
var widthX = rightX - leftX;
var midX   = leftX + (widthX / 2);
var topY = 160;
// wheels
var wheelA = psystem.addWheel(leftX, topY, 10);
var wheelB = psystem.addWheel(rightX, topY, 10);
wheelA.coeffSlip = 0.0;
wheelB.coeffSlip = 0.0;
// body
var rectA = psystem.addRectangle(new Vector(midX, topY), widthX, 10);
// wheel struts
var conn1 = psystem.addConstraint(wheelA.wp, rectA.p3);
conn1.setRestLength(5);
var conn2 = psystem.addConstraint(wheelB.wp, rectA.p2);
conn2.setRestLength(5);
var conn1a = psystem.addConstraint(wheelA.wp, rectA.p0);
conn1a.setRestLength(5);
var conn2a = psystem.addConstraint(wheelB.wp, rectA.p1);
conn2a.setRestLength(5);
psystem.paintSurfaces();
this.onEnterFrame = function() {
var keySpeed = 2.0;
if(Key.isDown(Key.LEFT)) {
wheelA.rp.vs = -keySpeed;
wheelB.rp.vs = -keySpeed;
} else if(Key.isDown(Key.RIGHT)) {
wheelA.rp.vs = keySpeed;
wheelB.rp.vs = keySpeed;
} else {
wheelA.rp.vs = 0;
wheelB.rp.vs = 0;
}
if (Key.isDown(Key.UP)) {
if (ang.targetTheta < 2.9) ang.targetTheta += .1;
} else {
if (ang.targetTheta > angDefault) ang.targetTheta -= .1;
}
psystem.timeStep();
psystem.paintWheels();
psystem.paintConstraints();
}

Flash Player 8 Public Beta

Released the Flash Player 8 public beta.
It’s a pre-release version of “the next major release of Flash Player. It is being made available for developers and consumers to test their content to ensure existing content plays back correctly and that there are no compatibility issues.
As usual there’s also the bug reporting form:
http://www.macromedia.com/go/fp_public_beta_feedback

http://www.macromedia.com/../public_beta

Flash/Javascript Integration Kit

As just read on the Mike Chambers blog, here the link to the beta release of the Flash/Javascript Integration Kit (How can i miss it?!?)
It works on these browsers/OS:
* Windows IE 6.0
* Windows Firefox 1.0
* Windows Opera 8.0
* Macintosh Opera 8.0
* Macintosh Firefox 1.0
* Safari 1.2.4 and 2.0
* Linux Firefox 1.0.4

and it can be possible to communicate passing complex object data type such as:
* objects
* arrays
* strings
* numbers
* dates
* booleans
* nulls
* undefined

In the installation page there’s also an example of the usage in flash:

import com.macromedia.javascript.JavaScriptProxy; 
var proxy:JavaScriptProxy = new JavaScriptProxy(); 
proxy.call("javaScriptMethodName", "arg1", new Object());

See docs here: http://www.osflash.org and http://weblogs.macromedia.com/flashjavascript/readme.html

http://weblogs.macromedia.com/flashjavascript/