Born Neet

- The Emotional Programmer -

Shortcut Key
Next Page … J(Shift + j)Prev Page … K(Shift + k)
Scroll Down … Space / Page Down
Scroll Up … Shift + Space / Page Up
2008.01.22(Tue.) 23:31
 

Flashの勉強しなきゃなぁと思ってたら、ちょうど良いタイミングで、
Flashの要となるスクリプト言語「ActionScript」とは?(1/3) ─ @IT
なんて記事が出てたのでやってみた。

Hello, world!そのままは面白くないので、単純なお絵かきFlashを作ってみることにした。

ActionScript(っていうかFlash自体)初めてで、かなり手探りだったけどなんとか完成。
(ソースとswfは続きに。トップにFlashが表示されると重くなるので)

[感想]

JavaのSwingみたいだなぁというのが第一印象。
構文もそうだけど、コンパイルのもっさり感とか(笑)

っていうかお絵かき機能があまりにも簡単に実現できて軽くショック!
(x)html2presenの時(canvasでやった)の苦労はなんだったんだ~!

とまぁ一応できたけど、やっぱ1回入門書読みたいな。
どっかに本ぐらい体系的にまとまってるAS3のサイトないかなぁ…。

[参考]


[ここから続き]

[サンプル]

下の枠内をドラッグすると緑の線が引けます。
ただそれだけです。

[ソース]

たったこれだけで絵が描ける、asすげー!

Hello.as

package {
	import flash.display.Sprite;
	import flash.events.MouseEvent;

	public class Hello extends Sprite {

		private var drawArea:Sprite;
		private var isDown:Boolean = false;
	
		public function Hello() {

			drawArea = new Sprite();
			drawArea.graphics.beginFill(0xFFFFFF);
			drawArea.graphics.drawRect(1, 1, 348, 198);
			drawArea.graphics.endFill();
								
			drawArea.graphics.lineStyle(3, 0x00FF00);
    		
			addChild(drawArea);

			drawArea.addEventListener(MouseEvent.MOUSE_DOWN, start);
			drawArea.addEventListener(MouseEvent.MOUSE_MOVE, move);
			drawArea.addEventListener(MouseEvent.MOUSE_UP, end);

		}
		
		private function start(e:MouseEvent):void {
			isDown = true;
			drawArea.graphics.moveTo(drawArea.mouseX, drawArea.mouseY);
		}
	    
		private function move(e:MouseEvent):void {
			if(isDown) drawArea.graphics.lineTo(drawArea.mouseX, drawArea.mouseY);
		}

		private function end(e:MouseEvent):void {
			isDown = false;
		}
	}
}

Hello-config.xml

<flex-config>
	<default-size>
		<width>350</width>
		<height>200</height>
	</default-size>
</flex-config>

以上です。
久々の長文疲れた(>_<)

[追記]

細かい誤字脱字とかを修正。(2008/05/31)

[追記2(2008/08/31)]

貼り付けたHTML(object & embedタグ)はこんな感じ。

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="350"
height="200" codebase="http://fpdownload.adobe.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0">
<param name="movie" value="http://file.blog.bornneet.com/Hello.swf" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="quality" value="high" />
<embed src="http://file.blog.bornneet.com/Hello.swf" width="350" height="200" play="true" loop="true" quality="high" pluginspage="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>
</object>

久々に見たら気になったので。

っていうかborderの付け方がひどい…
(1px分小さい白でfillRectして背景の色を残してるw)

拍手[0回]

Post your Comment
Name (任意) :
Title (任意) :
URL (任意) :
Comment (日本語必須) :
Spriteクラスについて
drawArea = new Sprite();

drawArea.graphics...

としているようですが、

Spriteクラスより、Shapeクラスのほうが高速に動作します。

なので、lineStyleメソッドでの描画は、Shapeクラスを使うことをお勧めします。

drawArea=new Shape();
var drawG:Graphics=drawArea.graphics;
drawG.drawCircle(100,100,100);
htakumu: 2009.10/27(Tue) 18:16
Re:Spriteクラスについて
htakumuさん

コメントありがとうございます。

SpriteよりShapeの方が速いんですか・・・。
恥ずかしながら全く知りませんでした。

最近はActionScriptを全然触れてませんが、
次に何かを作る時には参考にさせていただきます。

勉強になりました。
他にもお気づきの点があれば遠慮なくコメント下さい!


2009/10/31(Sat)
Trackback

※ 日本語必須


この記事のトラックバックURL:
2009/03/06 22:45  htmlのソースとプロジェクトファイル一式を追加しました。 たぶん、今までで一番長文です。 1年以上前に書いた、  ・ Hello, Flash!:ActionScriptを初めて使ってみたらお絵かきが簡単にできてびっくりした - Born Neet は今だに僕のブログで一番の人気記事です。 (HolyGrailさんのおかげでしょうが…) にもかかわらず、それから一年以上ASの話題を扱わないという体たらく。 (地味に勉強してたりはし...
Born Neet 2009/03/14(Sat) 11:17
  BackHOME : Next 
自作スクリプト実験
ブログ内検索
カレンダー
01 2010/02 03
S M T W T F S
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
最近のコメント
[12/29 佐藤]
[11/12 nontan]
[10/27 htakumu]
[10/22 JUN]
[10/17 枚方市民]
最近のトラックバック
RSS
RSS 0.91
RSS 1.0
RSS 2.0
プロフィール
HN:
t*
運営日数:
?日
記事数:
?件

ブログパーツ
あわせて読みたい
スポンサード リンク

Born Neet wrote all articles. 
Powered by Ninja.blog / TemplateDesign by TMP, modified by t*  

SEO対策忍者ブログ