John Grden Papervision 3D components for Flash CS3

John Grden has released the Papervision 3D components for Flash CS3 John Grden is in my opinion a very important part in the Papervision 3D team since he joined them.

Component Screen

    Here are the main features of the components.
    Design-time render and editing in Flash IDE
    3 Material types supported – BitmapFileMaterial, BitmaAssetMaterial and MovieAssetMaterial
    Creates MovieScene3D and Free or Target camera
    Manages resizing / centering of Papervision3D scene [optional]
    Dynamic masking to constrain the viewable render area to the bounds of the component [optional]
    Full API and access to Scene, Camera, Collada objects to code around
    Automatically loads materials via Collada file [when materials list is not given]
    New Custom Panel for modifying rotation, camera zoom, camera focus, camera Z at design-time


John Posted this tutorial on how to use this components:

For those of you who haven’t been keeping track on Papervision 3D.

Papervision3D

Papervision 3D started as a simple way to transform MovieClips to achieve the 3D illusion. By changing their position, size, rotation and skew you could almost forgive the lack of perspective.But the latest version, fully optimised for Flash 8 Image API, uses triangle tesselation to distort textures. Now we can render complex objects in ?real 3D?!. Here’s the link to their Google Code Project Home and that’s where you get to download the compontents too.

FZip Update with support for Adobe AIR

FZIP

Claus Wahlers just released an update for FZIP, a AS3 class library to load, extract/decompress files.

Main updates are:

  • Added support for Adobe Air. The Adobe Air runtime provides a low level inflate method, making it possible to load any ZIP archive and decompress compressed files without the need of injecting Adler32 checksums.
  • Added FZipLibrary class for higher level access to files in a ZIP archive. ?FZipLibrary processes files (based on file extensions) from an FZip instance and converts them into usable formats. Files can be converted to either a BitmapData or DisplayObject classes. Data embedded in SWF files (like classes) can also be retrieved. Flash?s built-in Loader class is used to convert formats, so the only formats currently supported are ones that Loader supports. As of this writing they are SWF, JPEG, GIF, and PNG.?
  • Bug fix: There was a problem with filenames containing special characters. Filename encoding now defaults to UTF-8. In case the filenames are encoded differently in your ZIP, you can specify the encoding in the FZip constructor.

Sound Fun with SoundMixer.computeSpectrum();

computeSpectrum

This is an example of how the computeSpectrum works on Flash CS3, I’ts just great the posible things you can make with it , this is based on a great example made by Peter deHaan In my example I just made the spectrum being represented by circles and have a gradient fill across the spectrum here’s the link.

And here’s the script:

?View Code ACTIONSCRIPT3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var url:String ="songs/mysong.mp3";
var request:URLRequest = new URLRequest(url);
var s:Sound = new Sound();
s.addEventListener(Event.COMPLETE, completeHandler);
s.load(request);
var song:SoundChannel = s.play();
song.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
var ba:ByteArray = new ByteArray();
 
var gr:Sprite = new Sprite();
 
gr.x = 20;
gr.y = 200;
 
addChild(gr);
 
var time:Timer = new Timer(50);
time.addEventListener(TimerEvent.TIMER, timerHandler);
time.start();
 
function completeHandler(event:Event):void {
	event.target.play();
}
function soundCompleteHandler(event:Event):void {
	time.stop();
}
function timerHandler(event:TimerEvent):void {
	SoundMixer.computeSpectrum(ba, true);
	var i:int;
	// Gradien Fill
	var fillType:String = GradientType.LINEAR;
	var colors:Array = [0xFF0000, 0x0000FF];
	var alphas:Array = [100, 100];
	var ratios:Array = [0x00, 0xFF];
	var matr:Matrix = new Matrix();
	matr.createGradientBox(400, 20, 0, 0, 0);
	var spreadMethod:String = SpreadMethod.PAD;
	// ends fill
	gr.graphics.clear();
	gr.graphics.lineStyle(0, 0xFF0000);
	gr.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod);
	gr.graphics.moveTo(0, 0);
	var w:uint = 2;
	for (i=0; i<512; i+=w) {
		var t:Number = ba.readFloat();
		var n:Number = (t * 100);
 
		gr.graphics.drawCircle(i, w, -n);
 
	}
}

Adobe Flex 3 Beta is out.

flex3

Adobe Flex 3 Beta

This prerelease version begins a new, more transparent product development process from Adobe, with frequent, regular access to early builds and greater insight provided into the feature roadmap and planning process. The Flex Builder 3 beta release will provide you with an opportunity to explore powerful new features, communicate early feedback, and test existing Flex applications with the new Flex 3 framework. Some of the new major features include:

* Support for the new Adobe Integrated Runtime (AIR).
* Code refactoring.
* Memory and performance profilers.
* SWF file size reduction through persistent framework caching.
* Advanced datagrid.
* Web service introspection.

Downoad the Beta here

Ted Patrick gave a more in depth info on the subject check his blog here.

Adobe to open-source Flex

FlexLogo Adobe announces plans to open-source Flex under the Mozilla Public License (MPL). Developers will soon be able to freely download, extend, and contribute to the source code for the Flex SDK, including the Flex compiler, command-line debugger, and application framework.
You can find more info on Adobe Labs

Apollo Cheat Sheets Released

Sean Moore has released 3 Apollo cheatsheets So if you’re a developer starting with Apollo, these are very usefull. All of the new Apollo Classes are on the sheets. Be sure to check the Blog to see all the cheatsheets. Keep up the good work Sean.

Apollo Cheatsheets

Here are the links:

Apollo mx.controls & mx.core Cheatsheet

Apollo flash.display & flash.events Cheatsheet

Apollo flash.filesystem, flash.html & flash.system Cheatsheet

Kelvin Luck’s Flasher

flashrTest

Yesterday my wife asked me if I could somehow display her flickr archives on her personal website. And to be quite frank I had been playing with the flickr API but never gave me the time to make something real out of it, so I started googling around and found out this great Actionscript 2.0 wrapper called Flashr by Kelvin Luck that makes it easy to develop Flash applications to display and interact with photos on flickr.com.

So this is a very simple example (based on an tutorial of the version 0.4 of Flashr and I updated it to work with the current version (0.5)) of what can be done with Flashr but I plan to add more functionality and eyecandy to it (I’ll upload the result of that).

I almost forgot here’s the script that make this work:

?View Code ACTIONSCRIPT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import com.kelvinluck.flashr.core.Flashr;
import com.kelvinluck.flashr.core.Photo;
import com.kelvinluck.flashr.core.Photoset;
import com.kelvinluck.flashr.core.Person;
import com.kelvinluck.flashr.core.FlashrResponse;
import com.kelvinluck.util.LogWrapper;
import com.dynamicflash.utils.Delegate;
 
class com.cecymeade.UserRecentPhotos {
var xMax:Number = 214;
var yMax:Number = 214;
var xTemp:Number;
var yTemp:Number;
var apiKey:String = "Your Flickr API key here";
var userNsid:String = "90349680@N00";
var _target:MovieClip;
 
function UserRecentPhotos(target:MovieClip) {
Stage.scaleMode = "noScale";
LogWrapper.getInstance().init();
LogWrapper.getInstance().addTracePublisher();
_target = target;
var _flashr:Flashr = Flashr.getFlashr();
_flashr.apiKey = apiKey;
var _flashrResponse:FlashrResponse = new FlashrResponse();
_flashrResponse.setSuppressOutput(true);
_flashrResponse.onPeopleGetPublicPhotos = Delegate.create(this, onPeopleGetPublicPhotos);
_flashr.peopleGetPublicPhotos(userNsid, null, 16, 1);
}
 
function onPeopleGetPublicPhotos(p:Person):Void {
var photosArray:Array = p.getPhotos();
var userNsid:String = p.nsid;
for (var i:Number = 0; i
var thisPhoto:Photo = Photo(photosArray[i]);
var mc:MovieClip = _target.createEmptyMovieClip("photo"+i, i);
mc._x = 1+(i%4)*76;
mc._y = 1+Math.floor(i/4)*76;
mc.createEmptyMovieClip("jpgHolder", 1);
mc.jpgHolder.loadMovie(thisPhoto.thumbnailUrl);
mc.xMax = xMax;
mc.yMax = yMax;
var freeDepth = (_root.getNextHighestDepth());
mc.onRollOver = function() {
xTemp = this._x;
yTemp = this._y;
this._x = Math.min(xTemp, xMax);
this._y = Math.min(yTemp, yMax);
this.swapDepths(freeDepth);
this._xscale = this._yscale=120;
};
mc.onRollOut = function() {
this._x = xTemp;
this._y = yTemp;
this._xscale = this._yscale=100;
};
mc.photo = thisPhoto;
mc.onPress = function() {
getURL(this["photo"].photoPageUrl, "_blank");
};
}
}
 
public static function main():Void {
var u:UserRecentPhotos = new UserRecentPhotos(_root);
}
 
public function toString():String {
return "[com.cecymeade.UserRecentPhotos]";
}
 
}

[snippet=6312]

Fuse 2.1.3 and FuseFX 0.1 Released

An update of the Fuse Tween engine has been released, and with it FuseFX extensions, a release of new tweenable properties wish includes MixerFX a sample extension that lets you tween Sound objects and TextFX to animate all numerical TextFormat properties right on a TextField.

Check ’em out at the Moses?s Fuse ZigoEngine site.