タグ別アーカイブ: ActionScript

[FL] 基礎部分のキーワードを抜粋、その5:条件分岐(未完成)



 

条件分岐

結果がtrueかfalseになる式を論理演算子で作る。
もしくは、プロパティ値がBooleanデータ型になるものをそのまま使う。

if文
昔、再三やったのでパス
61P

if~else~
昔、再三やったのでパス
62P

if~else if~
昔、再三やったのでパス
63P

ステートメントブロックのbreak
飽きてきたのでパス
65P

switch~case~
飽きてきたのでパス
66P

演算子?:を使った条件分岐
飽きてきたのでパス
69P

さすがに読み込みだけじゃ飽きるな。。。
ちょっと、基本飛ばして、次回からスクリプトに入ろうかな。

僕はこの本を見て勉強中です。
このブログみたいなキーワードの羅列じゃなく、初心者にも分かりやすく書いているので、お勧めです。
Adobe Flash CS4 詳細!ActionScript3.0入門ノート[完全改訂版](CD-ROM付)

次回は繰り返しです



[FL] 基礎部分のキーワードを抜粋、その4:データ型



 

データ型

値の種類、大きさの範囲のセットを設定。
実際の値を持つプリミティブ型と、値への参照を持つリファレンス型(オブジェクト型)に分類できる。

プリミティブ型
Boolean、int、Null、Number、String、unit、void以外は全てリファレンス型

Number型、int型、unit型
Number型」小数点を含む数値全て、53ビット、初期値NaN(非数)
int型」整数、32ビット、初期値0
unit型」0を含む正の整数、32ビット、初期値0
最小値は.MIN_VALUE、最大値は.MAX_VALUEで参照できる。

Boolean(ブーリアン)
true(真)かfalse(偽)のどちらかを持つ。論理値、ブール値。初期値false
「new Boolean(値);」で作れる。この場合、値に入れた値が初期値になる。
論理演算子を使って比較などの条件式、結果は論理値になる。(演算子 参照)

String
“あいうえお”のように直に記述(リテラル値)でも、インスタンスとして扱われるので、プロパティやメソッドを利用できる。
初期値null(””とは違うので注意!)。undefindを代入するとnullに変換される。
null== undefindはtrue。null=== undefindはfalse。

プリミティブ型とリファレンス型の違い
同じような演算を行っても結果が違ってくる
プリミティブ型は予想通りの変化をする。

リファレンス型
銀行口座のように複数のカードから同じ場所を参照している状態に似てる。
「aaa1 = aaa2」とやった時点で、参照場所が入っていることになる。

関数の引数の値渡し、参照渡し
関数へ渡す値の種類→関数内で引数を変更→元の変数への影響
値渡し(プリミティブ型)=元の変数に影響できない。
参照渡し(リファレンス型)=元の変数の値が変化してしまう。

データ型を調べる(is演算子
データ型が一致したときtrue(真)、それ以外false(偽)
クラスの継承については後ほど。>258p

データ型を調べる(as演算子
データ型が一致したときその値、一致しないときnull
データ型を変換して代入する際にも使われる。

データ型の変換
キャストと呼ぶ。
トップレベルに用意されている関数int()、unit()、Number()、String()、Boolean()

数値への変換
int()整数に変換、unit()符号なしの整数に変換、Number()数値に変換
日付は1970年1月1日から起算したミリ秒数になる。そのさいはNumber()で変換する。

ストリングへの変換
String()を使う

Boolean型への変換
Boolean()を使う
nullundefind“”falseに変換される。その他はtrueに変換される。

データ型の暗黙的変換
変数代入時、引数渡し時、値返り時、+でストリング連結時などに自動的に変換される。
58P

コンパイル時の型チェック免れるためのキャスト
意味が分からないので、パス。たぶんルールを守って書けば大丈夫でしょ。
59P

この本を見て勉強中です。
こんなキーワードの羅列じゃなく、初心者にも分かりやすく書いているので、お勧めです。
Adobe Flash CS4 詳細!ActionScript3.0入門ノート[完全改訂版](CD-ROM付)

次回は分岐条件です



[FL] 基礎部分のキーワードを抜粋、その3:演算子



 

今回は、演算子のお勉強。
なかなかプログラムに入れなくて、イライラも7分目くらい。
書くと覚えるね。ブログに書くことで覚えていってます。

演算子

オペランド、オペレータ
値や変数=オペランド
演算子=オペレータ

代入演算子
=」の右項の値を左項の変数やプロパティに代入や設定をする。
(等号は==や===)

「=」が式に2回以上出る場合は、右項から順に処理される。

算術演算子
+」足し算(加算)、正の符号
」引き算(減算)、負の符号
*」掛け算(乗算)
/」割り算(除算)
」割り算の余り(剰余)
++」1足す、インクリメント
」 1引く、デクリメント

「++a」プリインクリメント「–a」プリデクリメント
ステートメント実行前に処理

「a++」ポストインクリメント「a–」ポストデクリメント
ステートメント実行後に処理

複合代入演算子
+=」加算して代入
-=」減算して代入
*=」乗算して代入
/=」除算して代入
%=」剰余を代入

ストリング演算子(文字列)
+」ストリングの連結
+=」ストリングを連結して代入
”  “」ストリングを囲む
‘  ‘」ストリングを囲む

比較演算子
条件を満たす時「true」、満たさない時「false」の論理値(ブール値)になる。
==」等しい
!=」等しくない
>」より大きい
>=」以上
<」より小さい
<=」以下
===」厳密な等価(値もデータ型も)
!==」厳密な不等価(値もデータ型も)

論理演算子(これ、使った事無いから理解するまで頑張る)
trueかfalseの論理値をオペランドとして扱う。一方の値が論理値でない時機能が変化。
どちらかが論理値でない
「a && b」aがfalseに変換できればa、できなければb
「a || b」aがtureに変換できればa、できなければb
どちらも論理値
「a && b」論理積、aとb両方がtrueならtrue、そうでない時false
「a || b」論理和、aとbどちらか1方でもtrueならtrue、そうでない時false
! a」論理否定、aがtrueのときfalse、falseのときtrue(反転させる時などに使える)

ビット単位演算子(これ、使った事無いから理解するまで頑張る)
2進数の演算など
必要になったら勉強する>P45

その他の演算子(これ、使った事無いから理解するまで頑張る)
XML演算子など。。。
必要になったら勉強する>P47

優先順位と結合性
括弧の使い方など
必要になったら勉強する>P47

詳しくはこちらの本を買ってみたら良いよ
Adobe Flash CS4 詳細!ActionScript3.0入門ノート[完全改訂版](CD-ROM付)

次回はデータ型について



[FL] 基礎部分のキーワードを抜粋、その2:フレームアクション



 

フレームアクション

メソッド定義(function
よく使う処理をメソッドとして定義する
処理に使用する値を引数(ひきすう)で受け取れる
データ系は省略可能。省略しない場合はvoidを指定する
同じタイムラインであればどこからでも利用可能
同一タイムラインで同名メソッドは定義できない

定義書式
function メソッド名(引数:データ型,引数:データ型, …) :void{
//スクリプト
}

実行書式
メソッド名(引数,引数, …);

引数の個数、引数のデータ型、は、定義側と実行側で一緒にする。(違うとエラーになる)

しかし、引数に初期値を指定例 —–ab(a.int=1,b.int=5):void—–)してあれば、省略も可能。その場合であっても、前の値( 00,00, … )は省略できない。
初期値を指定していない引数より前にある引数に、初期値を指定することはできない。

引数の個数を指定しないことも可能(例 —–ab(…abcde):void—–)適当な変数を使って指定する
その際の値は、配列として変数に格納される

メソッド内での処理の中断はreturnで。その際、値は指定しない。

関数定義(function return
関数はfunctionで定義して、returnで演算結果を戻す
書く時の注意点は大体メソッドと一緒(voidは出てこない)

定義書式
function 関数名(引数:データ型,引数:データ型, …) :戻す値のデータ型{
//実行するステートメント
return 戻す値;
}

実行書式
関数名(引数,引数, …);

グローバル変数、ローカル変数
同一のタイムライン内では同名の変数は宣言できない=グローバル変数
メソッドや関数のfunctionブロックの中で宣言した変数はブロック内だけで利用できる=ローカル変数

function外で宣言したグローバル変数の場合は、function内にも影響する。
function外でグローバル変数を宣言した後、function内でも同じ変数名で宣言した際はfunction内で宣言したローカル変数の値が優先される。

匿名関数
中級者向けなのでパス>36P
とりあえず必要になるまでは、関数名を指定しない関数があることだけ頭に入れておけば良いかな。

Functionインスタンス
中級者向けかな>37P
関数はFunctionクラスのインスタンスの値として扱うことが出来る。
例えばxyz関数を定義した後、変数abcのFunctionに代入することで、xyzをabcで実行できるようになる。

関数のネスティング
中級者向けかな>38P
関数を入れ子にできる。親関数で指定したローカル変数を子関数で利用できる。関数クロージャ、関数閉包などと言う。

Adobe Flash CS4 詳細!ActionScript3.0入門ノート[完全改訂版](CD-ROM付)

次回は演算子です



[FL] 基礎部分のキーワードを抜粋、その1



 

11月11日に書いた記事です。本日、16日に加筆します。

この本を買ったので、勉強開始。
ちょっとランク低い本にしておけば良かったかな。。。
ActionScript 3.0 逆引きクイックリファレンス Adobe Flash CS3対応

中級者向けだろう。

サンプルファイル
http://book.mycom.co.jp/support/bookmook/gyaku_as3/

結局難しかったので、この本も買った。多分、自分のレベルにあってると思う。
Adobe Flash CS4 詳細!ActionScript3.0入門ノート[完全改訂版](CD-ROM付)

初心者向け。とても分かりやすい。所々に誤字がある。

AS3スクリプト記述場所:(ここが大きく変わった)
フレームアクション(タイムライン上のキーフレーム)、外部ファイル(.as)とincludeディレクティブ、クラス
※AS2までのようにムービークリップアクションやボタンアクションとしての記述はできなくなた
基本はキーフレームに記述するようになった。 (←これでつまづいた!)

フレームアクション、実行の順番とタイミング:(昔から変わっていない)
フレーム1から順番に。
複数行のスクリプトは上から順番に。
キーフレームに到達したタイミングで。
上にあるレイヤーから。
ムービークリップのキーフレームアクションは、インスタンスがステージに表示再生されて記述されたキーフレームに到達したら。

ムービークリップインスタンス、プロパティとメソッド:
プロパティとは属性のこと(名前、座標、サイズなど)
メソッドとは操作のこと(再生、停止、フレーム移動など)
メインのタイムラインもムービークリップインスタンス
相対関係で指し示す際は(this)を使う←このスクリプトが書かれてるキーフレームを内包するインスタンスを指す
thisは省略可能
入れ子の時、自身の親のムービークリップのインスタンスを指す際は(parent)を使う

スクリプトの記述ルール
区切りは(;)セミコロン
改行、空白、空白行は無視される
一行コメント(//)先頭にスラッシュ2個以上。改行で終了。
複数行コメント(/*~*/)。先頭を(/*)最後を(*/)で囲む。
インスタンス名、プロパティ名、メソッド名、変数名など、大文字と小文字は区別される。
自動フォーマット機能を利用すると、読みやすくしてくれる。

変数
変数の宣言は(var)。
同時にデータ型を指定できる。値の属性、範囲。( ver a:int = 2+5; )
unit(0か正の整数)、String(文字列)、Array(配列)、Boolean(trueかfalse)、int(整数)、Number(整数、符号なし整数、浮動小数点数)、Object(すべてのクラスの値)、*(データ型を指定しない場合、undefinedを代入したい場合)
アクセス制限の宣言はクラス定義でできる。publicprivateなど。(フレームアクションでは宣言できない)
同じタイムライン内で同じ名前の変数を重複して宣言すると、コンフリクトエラーになる。(レイヤー、キーフレームが違ってもダメ)

定数
定数の宣言は(const)。
定数名は大文字だけで単語は_(アンダースコア)で区切る。
変数と違い、値は宣言の後で変更できない。
他は大体変数と同じ。

グローバル定数
どこからでも利用できる。
infinity(正の無限大)、-infinity(負の無限大)、NaN(非数(数値ではない))、undefind(未定義)
定数的なもの。true(真、1、true)、fales(偽、0、fales)、null(データがない)

クラスの静的パブリック定数
クラス名に(.)ドットをつけて使う。 ( Math.PI、Number.MAX_VALUE、Keyboard.SHIFT など)

以下は、中級者向けの本からの抜粋なので、読み飛ばしてOK。

オブジェクト:
ムービークリップインスタンス、ボタンインスタンス、テキストフィールドインスタンス、配列、日付、サウンドなど
言い換えれば、オブジェクトとはクラスのインスタンス
機能はカテゴリごとにクラスとして用意され、操作に必要なプロパティとメソッドが定義されている

データ型:
プリミティブデータ型(実際の値を持つ)と複合データ型(値を参照する)に分かれる
プリミティブデータ型>Boolean,int,unint,Number,String,Null,void
複合データ型>それ以外(笑)

表示オブジェクト:
継承構造、基本クラス、機能を定義、サブクラスのオブジェクト、表示オブジェクト、インタラクティブオブジェクト、表示オブジェクトコンテナ、とりあえずキーになりそうな単語をメモ。

表示リスト:
Stageオブジェクト、メインタイムライン、表示リストに追加すれば表示される、表示リストから削除しても存在する

表示オブジェクトの参照:
インスタンス名を .(ドット演算子)でつないで指定、[](配列アクセス演算子)でも指定可能
後者は、プロパティ名を変数で指定する場合に利用

イベントの処理:
イベントリスナー(イベントハンドラ)、イベントターゲット、イベントオブジェクト、イベントフロー(キャプチャ段階、ターゲット段階、バブリング段階)

シンタックス:
識別子:変数、プロパティ、オブジェクト、関数、メソッドなどに付ける名前。使える文字は半角の英数字、_(アンダースコア)、$(ドル記号) 先頭に数字は使えない。予約語も使えない。大文字と小文字は区別される。
セミコロン:ステートメントの終わりに付ける。
演算子(オペレーター):値に演算を行う記号(+、-、<、>などいっぱいある)。対象になる値をオペランドという。

エスケープシーケンス:
特別な文字を表現する際、バックスラッシュを使う

オマケ。気になったサイト
すばらしいAS3のサンプルがいっぱいありそう。
違うか。ライブラリか?
http://beautifl.net/

http://code.google.com/p/as3corelib/

http://sourceforge.jp/

http://code.google.com/intl/ja/

よくわからないけど、リンクしておく。

次回はフレームアクションです



[FL] AS3を基礎からやり直し



 

フラッシュ4をバリバリやった以降は、AS1を多少触ったくらいのレベルなので、AS3の変わりようにびっくりしています。
あれ?ムービークリップやボタンにスクリプト書けないの?? どうなってんだ~!

ということで、基礎からやり直すことになりました…

以下のサイトが比較的分かりやすいかな。

初心者のためのActionScript3.0入門講座
書き方がクドイですが、分かりやすいです。AS2をかじってる人なら、サクサク進みそう。
この辺の流れだけでも、基本的なことなら大体できるようになるかな。急いで1時間くらいで終わるくらい。
http://www.akibahideki.com/blog/flash/actionscript30-case11.html
内容要約:AS3記述の仕方、オブジェクトを動かす、オブジェクトの情報を取得、画面に得た情報を表示、マウスの移動と一緒に動く(マウスイベント)、イベント定数について。。。

CSS Nite in Osaka, Vol.12 練習用サンプルファイル
サンプルファイルがいっぱい。
http://www.akibahideki.com/blog/flash/css-nite-in-osaka-vol12.html

外部クラスファイルの存在やAIRなど、奥はかなり深そうですが、触りは多少理解できました。



[FL] ドラッグ&ドロップ、正誤判定



 

Flashで数独を作るのに必要そうな知識
数独を解く
http://d.hatena.ne.jp/rsakane/20090913/as3_sudoku
高性能「ナンプレ」自動生成プログラムがオープンソースに(JAVA)
http://www.itmedia.co.jp/news/articles/0708/27/news076.html
フラッシュFlashの外部ファイル(テキスト)読み込み!
http://www.e-ssp.net/how_to_01.html
Flash Tips 外部テキストを表示させる基礎
http://airrat.blog103.fc2.com/blog-entry-344.html
AS3.0外部テキスト読み込み
http://d.hatena.ne.jp/jedisystemer/20090804/1249397853
[ActionScript]ドラッグアンドドロップ startDrag
http://d.hatena.ne.jp/yamasahi/20090414/1239701534
ドラッグ&ドロップ
http://hikipuro.is-a-geek.org/flash/game/sample/s029.php
ActionScript 3.0入門ノート CS4でタグ「ドラッグ& ドロップ」が付けられているもの
矩形と矩形の衝突判定
http://oshige.com/mt/mt-search.cgi?tag=ドラッグ%26%20ドロップ&IncludeBlogs=27

Flashで数独を作るのに必要そうな知識

数独を解く
http://d.hatena.ne.jp/rsakane/20090913/as3_sudoku

高性能「ナンプレ」自動生成プログラムがオープンソースに(JAVA)
http://www.itmedia.co.jp/news/articles/0708/27/news076.html

フラッシュFlashの外部ファイル(テキスト)読み込み!
http://www.e-ssp.net/how_to_01.html

Flash Tips 外部テキストを表示させる基礎
http://airrat.blog103.fc2.com/blog-entry-344.html

AS3.0外部テキスト読み込み
http://d.hatena.ne.jp/jedisystemer/20090804/1249397853

[ActionScript]ドラッグアンドドロップ startDrag
http://d.hatena.ne.jp/yamasahi/20090414/1239701534

ドラッグ&ドロップ
http://hikipuro.is-a-geek.org/flash/game/sample/s029.php

ActionScript 3.0入門ノート CS4でタグ「ドラッグ& ドロップ」が付けられているもの
矩形と矩形の衝突判定
http://oshige.com/mt/mt-search.cgi?tag=ドラッグ%26%20ドロップ&IncludeBlogs=27

追記:2009/10/29

えっと、スクリプトの書く場所がわかりません。。。
フラッシュMXくらいまでしか触ってなかったので、久々にやるのですが、、、
あれ?何処に記述するの?わかんないよ〜

こりゃ、本買わないと駄目かも。

一応、サンプルおいてくれてるサイトがあった。みる限り、かなり違うっぽい。
理解不能。もう別のアプリだね。こりゃ。

http://alwaysfinetuning.com/ao-blog/2009/10/as3drag.html