Category 'Actionscript 3.0'


How to save images in Flash CS3

With the use of Adobe Flash CS3 Bitmap is so improved that is immediately wanted to create a small Paint. . We have already seen how to make a small Paint (see Paint in Flash CS3 Create a Painter: simple application for drawing in Flash CS3 Pro ) can support a true "eraser" - erase function thanks to a particular use of Layer Shape and Bitmap . Let's say that Flash (unlike Flex) encoding does not allow it (like JPG or PNG) it automatically saves Bitmaps. However you can get around it using a server-side scripting and the ability of Flash to send data in POST.

More ...

Flash CS3 to create fog effect TV in 1 second

Flash CS3 is amazing. Here's how to create the classic fog of televisions in a second with 10 lines of code.

Flash Player Loading ...

More ...

Read the parameters of a movie in Actionscript 3.0

With Flash CS3 has changed the way we read the parameters passed to a movie, or as params that as GET parameters. In previous versions of Flash a parameter it was available as a variable directly in the first frame. Now, fortunately, we have an object that handles parameter passing, and not only: LoaderInfo .

More ...

Everything you always wanted to do with Actionscript 3

A great innovation introduced with Actionscript 3.0 is the ability to enumerate all objects (including shape drawn at the time) present in a container ( DisplayObjectContainer ). In fact it was now that Adobe introduced this feature. I had always complained about this lack, especially since going to debug the Flash environment was able to carry it out quietly but remained completely inaccessible from code!

More ...

Flash CS3 Professional: unformatted code

I guess I wonder why Adobe with a list of bugs growing!?. The bug I found, in CS3 Professional in Italian, is very troublesome and dangerous. Eye to the following code:

1
2
3
getRandRange ( min : uint , max : uint ) : uint { private function getRandRange (min: uint , max: uint ): uint {
uint ( Math . floor ( Math . random ( ) * ( max - min + 1 ) ) + min ) ) ; return ( uint ( Math . floor ( Math . random () * (max - min + 1)) + min));
}

After the automatic formatting:

1
2
3
getRandRange ( min : uint , max : uint ) : uint { private function getRandRange (min: uint , max: uint ): uint {
( Math . floor ( Math . random ( ) * max - min + 1 ) + min ) ; return uint ( Math . floor ( Math . random () * max - min + 1) + min);
}

He removed the brackets in the calculation max-min+1 ! That, of course, no longer returns the correct value! . The parenthesis, in fact, it is vital since it allows to multiply Math.random() for the entire result of the expression (max-min+1) . e poi, al risultato di questa moltiplicazione, viene sottratto (min+1) !! In the second case, after the code was "sformattato", Math.random() is multiplied "only" to the max and then, the result of this multiplication is subtracted (min+1) ! I explained that only needs to be complete ... but I think it was clear to everyone ...

Evidently the house Adobe really think that mathematics is an opinion!?
This is a bug of dangerous if the formatting codes bodied ... "upsets" the code, it becomes a serious problem going to put everything back in place! I hope that Adobe may provide a patch soon! So WARNING! Let me know if it does to you, to your version ...

More ...

UMAP Flash Component (Beta v0.6)

image

She was released the 0.6 beta component UMAP for Flash CS3 (Actionscript 3.0) - the package is also a version for Flex. Among the news we see the adoption of OSM as the default provider. Also was added an advanced handler of Marker and a series of various optimizations.

More ...

Adobe AIR 1.0, Adobe Flex 3.0 and the new Adobe Open Source

Adobe AIR Great news for AIR developers. It was finally released version 1.0 ! End of beta then! New SDK (vital for building in areas such as Aptana Studio , Eclipse , etc ...) and update extensions Dreamweawer and Flash CS3 Professional in Italian ! Until yesterday, in fact, it was not possible to develop an AIR application with Flash CS3 Profession in Italian. Now the new menu for creating RIA AIR is available and running! You can find all the updates (security fixes and extensions) directly on the site.

Adobe Open Source Another novelty is the official launch of Adobe Open Source , a new website that will track all the latest in open source, not just Adobe. This becomes, then, the reference point for developers who can travare interesting contributions with demos, source code and more, such as support for open source projects Tamarin and BlazeDS .

Soon we will see how to develop a simple AIR application with Flash and Dreamweaver!

More ...

Painter: simple application for drawing in Flash Pro CS3

Here is a demonstration of how easy it is developing applications in Flash CS3. After the various discussions on the development of an "erase", I propose a simple application that implements fully some of the things said in previous posts. In this example I added a ToolBar "draggable", the ability to choose the brush color and background color, the selection of the instrument "erase" and a slight "blur" during the design!

Flash Player Loading ...

Download the source for Adobe Flash CS3 Professional

More ...

Painting Flash CS3: real time erase tool

Starting with the codes provided in Create a Paint in Flash CS3 , and performing minor modifications, can greatly improve the instrument of "erase". Adding a Shape is not visible, you can use it as a "plan" to run the draw() in the blend mode "erase". As shown in the example below, after drawing something, hold down the Ctrl key and the effect of "delete" now appears in real time.

Flash Player Loading ...

The code is as follows - Source :

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
73
74
75
76
. MouseEvent ; import flash.events. MouseEvent ;
. BitmapData ; import flash.display. BitmapData ;
. Bitmap ; import flash.display. Bitmap ;
. GradientType ; import flash.display. GradientType ;
/ /
. Matrix ; import flash.geom. Matrix ;
/ /
Boolean = false ; md var: Boolean = false;
/ /
Sprite = new Sprite ( ) ; var event_spr: Sprite = new Sprite ();
event_spr ) ; addChild (event_spr);
/ /
Number = event_spr . stage . stageWidth ; var area_width: Number = event_spr. stage. stageWidth;
Number = event_spr . stage . stageHeight - 32 ; var area_height: Number = event_spr. stage. stageHeight - 32;
/ /
String = GradientType . LINEAR ; fillType var: String = GradientType . LINEAR;
: Array = [ 0xFF0000 , 0x00FF00 , 0x0000ff ] ; var colors: Array = [0xFF0000, 0x00FF00 0x0000FF];
: Array = [ 1 , 1 , 1 ] ; var alphas: Array = [1, 1, 1];
: Array = [ 0 , 128 , 255 ] ; var ratios: Array = [0, 128, 255];
String = SpreadMethod . PAD ; spreadMethod var: String = SpreadMethod . PAD;
: Matrix = new Matrix ( ) ; var matrix: Matrix = new Matrix ();
createGradientBox ( area_width , area_height , 1 , 0 , 0 ) ; matrix. createGradientBox (area_width, area_height, 1, 0, 0);
/ /
event_spr . graphics ) { with (event_spr. graphics) {
fillType , colors , alphas , ratios , matrix , spreadMethod ) ; beginGradientFill (fillType, colors, alphas, ratios, matrix, spreadMethod);
0 , 0 , area_width , area_height ) ; drawRect (0, 0, area_width, area_height);
; endFill ();
}
/ / Paint event
( MouseEvent . MOUSE_DOWN , _onMouseDown ) ; event_spr. addEventListener ( MouseEvent . MOUSE_DOWN, _onMouseDown);
( MouseEvent . MOUSE_MOVE , _onMouseMove ) ; event_spr. addEventListener ( MouseEvent . MOUSE_MOVE, _onMouseMove);
( MouseEvent . MOUSE_UP , _onMouseUp ) ; event_spr. addEventListener ( MouseEvent . MOUSE_UP, _onMouseUp);
( MouseEvent . MOUSE_OUT , _onMouseUp ) ; event_spr. addEventListener ( MouseEvent . MOUSE_OUT, _onMouseUp);
/ /
BitmapData = new BitmapData ( event_spr . width , event_spr . height , true , 0 ) ; var bmpd: BitmapData = new BitmapData (event_spr. width, event_spr. height, true, 0);
Bitmap = new Bitmap ( bmpd ) ; var bmp: Bitmap = new Bitmap (bmpd);
bmp ) ; addChild (bmp);
/ /
/ / Temporary shape
Shape = new Shape ( ) ; var draw_shape: Shape = new Shape ();
draw_shape ) ; addChild (draw_shape);
/ /
/ / Shape, not shown, used for the "cancellation"
Shape = new Shape ( ) ; var erase_shape: Shape = new Shape ();

/ /
e : MouseEvent ) : void { _onMouseDown function (e: MouseEvent ): void {
) ; debug ("_onMouseDown");
. lineStyle ( 10 , 0xffffff , 1 ) ; draw_shape. graphics. lineStyle (10, 0xffffff, 1);
. lineStyle ( 20 , 0xffffff , 1 ) ; erase_shape. graphics. lineStyle (20, 0xffffff, 1);
. moveTo ( e . localX , e . localY ) ; draw_shape. graphics. moveTo (and. localX, and. localY);
. moveTo ( e . localX , e . localY ) ; erase_shape. graphics. moveTo (and. localX, and. localY);
md = true;
}
/ /
e : MouseEvent ) : void { _onMouseUp function (e: MouseEvent ): void {
md = false;
. draw ( draw_shape ) ; bmp. bitmapData. draw (draw_shape);
. clear ( ) ; draw_shape. graphics. clear ();
. clear ( ) ; erase_shape. graphics. clear ();
}
/ /
e : MouseEvent ) : void { _onMouseMove function (e: MouseEvent ): void {
) ; debug ("_onMouseMove");
md && ! e . ctrlKey ) { if (md &&! and. ctrlKey) {
. lineTo ( e . localX , e . localY ) ; draw_shape. graphics. lineTo (and. localX, and. localY);
( md && e . ctrlKey ) { } Else if (md && e. CtrlKey) {
. lineTo ( e . localX , e . localY ) ; erase_shape. graphics. lineTo (and. localX, and. localY);
. draw ( erase_shape , null , null , "erase" ) ; bmp. bitmapData. draw (erase_shape, null, null, "erase");
}
}
/ /
v : String ) : void { function debug (v: String ): void {
: Date = new Date ( ) ; var d: Date = new Date ();
d . getMinutes ( ) + ":" + d . getSeconds ( ) + ":" + d . getMilliseconds ( ) + ": " + v ) ; trace (d. getMinutes () + "" + d. getSeconds () + "" + d. getMilliseconds () + "" + v);
}

): We have added a new Shape, erase_shape not visible (it was not made ​​any addChild() ):

1
2
3
...
/ / Shape, not shown, used for the "cancellation"
Shape = new Shape ( ) ; var erase_shape: Shape = new Shape ();

In the code that takes care of drawing has been introduced for the control key and, if pressed, is concerned precisely the Shape erase_shape and copied to the Bitmap:

1
2
3
....
. lineTo ( e . localX , e . localY ) ; erase_shape. graphics. lineTo (and. localX, and. localY);
. draw ( erase_shape , null , null , "erase" ) ; bmp. bitmapData. draw (erase_shape, null, null, "erase");

More ...

Create a Paint in Flash CS3

As discussed in Flash Actionscript contest: erase tool you can not "erase" a particular area of a Sprite, MovieClip, or Shape on which lines were drawn through the pointer graphics or rectangles. Exists, in fact, the only method clear() that, however, has effect on the entire area of our object. The solution to the problem lies in the possibility of using the Bitmap and BitmapData objects. As we shall see we can directly access and manipulate bitmaps in order to "erase" strokes with a real instrument "eraser".

Present two different methods to achieve the "gate". per esempio. The first "draw" (delete) data directly into the BitmapData, using the method fillRect() - you can also use setPixel() for example. The second method, the one I prefer, uses the methods of mergers (blendMode).

First of all let's see what kind of organization is needed to achieve a minimal simple Painter in Flash. The diagram below applies to both proposals, the "gate":

bitmap pattern-

I created three layers: the first, MovieClip or Sprite, and works as a background event handler (MouseDown, MouseMove and MouseUp). The second, Bitmap, is our main layers, one that will actually drawn graphics will be applied and on which the "gate". , ecc…). The third and last layer, the Shape, addresses two issues: the first is that it allows to directly use the functions provided by the graphics cursor (like lineStyle , drawRect() , etc ...). It also increases the performance during the tracking chart, as explained in detail below.

More ...



Stop SOPA