もう16時か、
2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50 [PR]美人女性のお部屋をナマ体験[PR]  

ActionScript 3.0 とか絶対ムリwww

1 :Now_loading...774KB:2006/07/02(日) 20:40:24 ID:8PWGvCYq
俺は「多少のプログラム知識があるデザイナー」だ。

以後AS3も使えるようにしといて、ってお前・・・


俺はプログラマーじゃねぇよヽ(`Д´)ノウワーン
PGの専門学校とか出てねぇよヽ(`Д´)ノウワーン
デスマーチなんて嫌だヽ(`Д´)ノウワーン

2 :よこしま ◆GIZenFPPok :2006/07/02(日) 23:12:07 ID:imC80Vua
やった!初の2ゲットだ!!
FLA板初とかそんなんじゃない。すごい。何がすごいってこの奇跡。
/upの公募FLA作ってたら絶対2をゲットすることなんかなかったんだぜ?
すごくね?もしいまだに諦めずにFLASH作ってたらどうなってたと思う?
まったくヒヤヒヤしたぜ!何がヒヤヒヤってこんなくだらないことを長々と書いている間に誰かに2ゲットされたらどうしようってことなんだ!
でも大丈夫!だってFLA板だぜ?一日に5000アクセスもない過疎板で同じ時間に2を狙っている人がいると思うかい?
それでも僕はヒヤヒヤしながら書いているわけだけれども、>>1の書き込み時間は20:40分だ。つまりもう二時間以上たっている。
二時間以上たっているのに2をゲットしないなんてなんて過疎なんだって思うだろ?だがそれはいい。なぜならここはFLA板だからだ。
つまり何が言いたいかって言うと、この2ゲットを手始めにFLA板の有名2ゲッターとして活躍していこうと思うんだ。そう、あの偉大なる肛門様のように!!!

3 :肛門の臭い ◆QkMYMo90VQ :2006/07/02(日) 23:14:54 ID:iaWuCySr
>>2の発言は俺への挑戦状と見なす!!

4 :Now_loading...774KB:2006/07/02(日) 23:57:45 ID:T1tm187K
夏だねぇ

5 :Now_loading...774KB:2006/07/03(月) 00:05:20 ID:X13EHLvU
JavaとかMFCみたいに
1つのクラスから派生するメソッド集
みたいなのになってるんだろう。
Fla8の時からflash.geom.*
みたいな燐辺が見えてたしな〜。

6 : ◆B2u3d2Sd26 :2006/07/03(月) 00:22:21 ID:No7kRol7
>>1
+激しく同意+


7 :Now_loading...774KB:2006/07/03(月) 12:33:29 ID:/lDFNiui
AS3どころかAS2も触ったことない俺
だってずっとflash5だぜ?

8 :Now_loading...774KB:2006/07/03(月) 16:30:00 ID:o+wlwEze
チンチコーレ

9 :Now_loading...774KB:2006/07/04(火) 01:23:34 ID:3mOWm+03
参考書待ちとしか言えない

10 :日立製作所 ◆2TENKK.nkY :2006/07/17(月) 00:26:02 ID:juvlK0Xt
誰かFLASH+AS3で組み込みマイコン制御(ARMあたりで)
できるようなミドルウェアつくってくんないかな〜〜

11 :Now_loading...774KB:2006/07/21(金) 14:01:18 ID:5+pL24+h
as1.0でいいじゃねーか
もうオブジェクト指向とかやめようぜ

12 :Now_loading...774KB:2006/07/22(土) 04:42:00 ID:Tj4o3tEi
>>11
Flash5のころからオブジェクト指向で書いてるけど・・・

13 :Now_loading...774KB:2006/07/23(日) 10:29:02 ID:pyiVtOOv ?#
別にAS1.0でも書けるしデザイナが
無理して使う必要は無いんじゃないかな?

14 :Now_loading...774KB:2006/07/28(金) 12:09:31 ID:bWoIU+0U
http://slashdot.jp/articles/06/07/26/2220208.shtml

>Flashを初めて触る人の入り口とも言えるボタン or シンボルに対しての
>on(event)の記述がActionScript3では使用出来なくなるらしい。
>フレームへの記述方法もActionscript3では異なるようだ。

こりゃ本格的に勉強しなおさないと駄目かもわからんね

15 :Now_loading...774KB:2006/07/28(金) 12:21:26 ID:iHkbSA1H
違うものだと思えばいいよ。

っていうかそう考えないとムリ
っていうか俺にはムリ

16 :Now_loading...774KB:2006/07/28(金) 13:53:16 ID:TDXr2N16
AS3になればCやJAVAのプログラマがとっつきやすくなるから分業化が
進むだろうな。

17 :Now_loading...774KB:2006/08/14(月) 14:12:55 ID:QqRfh0Dr
よし!おれの時代だ!

18 :Now_loading...774KB:2006/11/15(水) 20:01:30 ID:+DRwFImS



19 :Now_loading...774KB:2007/01/26(金) 15:40:12 ID:LHLBAlxR
>>14
最近ActionScriptを勉強し始めた者だけど、記述方法どっちにすればいいのって感じ。
これからはタイムラインの最初のフレームに書きましょうっていうのはわかるけど、
売れてる参考書とかほとんど古い記述方法なんだもんな。。。

20 :Now_loading...774KB:2007/02/17(土) 03:05:46 ID:fwzrAECi
今更だけど
>>2>>3ってすごいな・・

21 :Now_loading...774KB:2007/04/13(金) 15:46:48 ID:oxNm9j2I
>>19
_rootの1フレーム目に書くだけならそれほど問題ない。
だけど、クラスやらオブジェクト指向がわからないのでAS3にはついていけそうもない

22 :Now_loading...774KB:2007/04/14(土) 20:46:33 ID:McvuWjP/
クラスやオブジェクト指向な技法使わなければいいだけじゃん

23 :Now_loading...774KB:2007/04/17(火) 21:40:10 ID:paah0ZiW
>>22
調べてみ、絶望するから

24 :Now_loading...774KB:2007/04/18(水) 23:07:30 ID:ucMc/ttV
Flexやってるけど、別に継承とかクラス分け意識した設計しなくても書けるじゃん。
まあイベント記述なんかはちょい面倒だけど・・・
なんに絶望したんだ??

25 :Now_loading...774KB:2007/04/19(木) 16:17:14 ID:GUvd0OXH
フレームアクションしか使ってなかった人達の中には、
コンストラクタやスコープ程度の概念で躓く人もいるからな

26 :Now_loading...774KB:2007/04/19(木) 23:26:14 ID:eIACzYEl
>>24

Flexでアプリアプリするもん作るなら、いいんだよ。
従来のフルFlashサイト(例えば車系やAU電話端末系)、みたいのをAS3で組むとなると
死ねる。

27 :Now_loading...774KB:2007/04/20(金) 00:54:46 ID:AYAVfPeP
車載や携帯端末でAS3??

モグリカエレ
AS2でも使えたら感涙だわ

28 :Now_loading...774KB:2007/04/20(金) 23:41:46 ID:CZmxwFbq
>>27
とりあえず落ち着け
車や携帯端末なんかのプロモーション系のフルFlashサイトのことだと思われ


29 :Now_loading...774KB:2007/04/21(土) 00:02:56 ID:a9Ohy2wu
>>27

誤解を与えるような表現でスマン、>>28のいうような
バリバリ動く広告系のサイトって意味だ。

30 :Now_loading...774KB:2007/04/21(土) 00:09:44 ID:5bSEGKj7
>>29
yossyのとこのProgressionけっこうよさげだったよ
まだ、サンプルコードちょっと触った程度の感想だけど
http://progression.libspark.org/

31 :Now_loading...774KB:2007/04/21(土) 00:26:51 ID:a9Ohy2wu
俺も見た。
↓ぐらいの動きまでなら、なれればprogression使えば
AS3で現実的にいけそうだよね。

ttp://www.au.kddi.com/au_design_project/seihin/talby/
ttp://www.adidas.com/y-3/

個人的には
↓ぐらいのまで実装できると素敵なんだが、

ttp://www.nikon.co.jp/main/jpn/feelnikon/discovery/universcale/index.htm

Progression + Tweenerとかで実現できるのかな。

32 :Now_loading...774KB:2007/04/21(土) 00:34:51 ID:5bSEGKj7
>>31
実際組んでないから分からないけど
XMLリファレンス眺めた感じだと、XMLで変数渡しとか出来るっぽいから、
その変数を使って条件分岐させれば、nikonも余裕でいけるんじゃないのかな

Tweenerっていうか、CS3のタイムラインXMLと連動できたら最強だよねこれ
ちょっと本格的に触ってみるわ


33 :Now_loading...774KB:2007/04/21(土) 19:15:29 ID:5bSEGKj7
休日なんで、ちょっと試してみた
なんかバージョンアップしてるっぽかったから、そっちで試したんだけど、これやばいわ
AS3使ったサイト作る場合の標準的なワークフレームになりえるキガス

スクリプト使った作り方はまだ分からないけど、プリセットの機能が充実しすぎで、
フレームアニメで表現できることなら、マジでXMLのみで完結できる

だれかスクリプト使った使い方教えてほすぃ



34 :Now_loading...774KB:2007/04/21(土) 21:55:41 ID:a9Ohy2wu
>>33

ちゃんとドキュメント読んでみた。
自分独自のアニメーションのセットとかを、
プリセット拡張して増やしてけば作ってけば
結構いけそうだね。

ちょっと俺もまじめに使ってみようかな。

35 :33:2007/04/24(火) 16:05:07 ID:oW0hespo
>>34
プリセットのコードを調べて、だいたい分かったんだけど、
スクリプトベースのアニメーションさせたいときは、
init()にアニメを開始するコード書いて、完了したときにinitComplete()を実行すればその間は何やってもOKぽ

ただ、ちゃんと作ろうと思うと、ちとXMLがめんどいね
助長になりやすい気がするから、おおまかなパーツだけXMLで配置して、
そのパーツの中に最初から配置しておくのがいいっぽ



36 :Now_loading...774KB:2007/04/28(土) 14:38:51 ID:CS7Kv1cn

Javaプログラマだけど、ActionScript3.0ってJavaにすげー似てる
簡単に覚えられそうだ
 

37 :Now_loading...774KB:2007/04/29(日) 00:09:04 ID:sG1k/xmT
似てるってのが結構罠で、逆にちょっとした違いでハマったり

38 :Now_loading...774KB:2007/05/10(木) 18:36:07 ID:X29D0s5D
大きな違いの方が情報量多くて記憶の索引になりやすいからな

39 :hoge ◆AXUssWRNqk :2007/05/21(月) 00:26:20 ID:SsU1pubT
こんばんわです。

http://pc11.2ch.net/test/read.cgi/swf/1175683335/

から誘導されてきたんですが、
このスレで、初心者むけAS3講座とかやってもよいでしょうか?

無問題そうならいったん今までの内容をコピペ
その後、講座を再開させていただこうかと。

40 :Now_loading...774KB:2007/05/21(月) 00:49:36 ID:ERdGRs5/
いいんじゃねーの。過疎ってるしスレ違いでもないし。

と一見さんの俺が言ってみる

41 :Now_loading...774KB:2007/05/21(月) 01:10:28 ID:X35NpiM5
そういう講座みたいなのやるなら
自分のブログでやったほうがいいんじゃない

42 :Now_loading...774KB:2007/05/21(月) 01:34:16 ID:O97dNg2K
少なくとも2chでそういうスレ見ないからここで良いと思う。

このスレに住民なんて居ないだろうし。

43 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:24:35 ID:F/0Q8Wka
http://pc11.2ch.net/test/read.cgi/swf/1175683335/
>>267よりコピペ

スレ立てようとしたら、規制ではじかれちまったよ。
なんで迷惑じゃなきゃしばらくここで書いてOK?

とりあえず AS3 ってなによ!?ってとこから、 データ型の説明についてまで。

■体験版は↓からGET
ttps://www.adobe.com/cfusion/tdrc/index.cfm?product=flash

44 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:25:21 ID:F/0Q8Wka
■AS3ってなによ!?
 AS2をベースに、文法を厳密にすることで処理速度を大幅にアップしたもの。
 プログラム的にはJavaScriptとJavaの中間っぽくなった。

■AS3で何ができるの?
 今までだったら重すぎる処理(AI、画像解析、3D等)
 バイトコードが直接読める(コードさえ書けばPSDでも、NESでも、DOCでもなんでも読み込める)
 音のスペクトラムが取れるので、itunesのサウンドビジュアライザーみたいのも作れる

■AS3のいいところ
 処理が速い(俺体感で計算処理は100倍、描画はあまり変わらない) 
 コードが厳密なのでバグをみつけやすい。
 Javaに近いので本職のコーダーが多く、よいフリーのライブラリとかが豊富。
 バリバリ動くアプリケーションやゲームを作りやすい

■AS3の悪いところ
 初心者に敷居が高い
 厳密な分コードが長くなりがち
 設計なしにアドリブで作るには、ちょっと慣れが必要
 厳密なAS3を書くと、小さいもの作るには逆に小回りがききにくい場合がある

45 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:26:07 ID:F/0Q8Wka
■型ってなによ!? その1

まずはAS3の最低限の前提知識として、型の説明


AS2-AS3では、変数に「型(データ型)」というものを指定します。
型はAS2だと任意だけど、AS3だとほぼ必須。

型ってのはこの変数には文字が入りますよー、この変数には数字が入りますよー、
って、変数に入る値のタイプを定義してやること。


■なんで型なんて定義するの?
型を定義すると、
その変数にはそのタイプの値しか入れられなくなる。
その代わり分処理速度が跳ね上がる。
また数字型の変数に文字を入れたりするとエラーが起きるので、バグを見つけやすい。



とりあえず、体験版起動してAS3ドキュメント開いて、
1フレにダイレクトにスクリプトを書いてみる。
AS3でもフレにスクリプトは書けるので。

46 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:27:12 ID:F/0Q8Wka
■型ってなによ!? その2

AS2でやってた人には退屈かもしれんけど、もうちょっと型の説明。

以下、1フレーム目に書いてみる。

var num : Number = 5
var str : String = "test"
var ar : Array = new Array()

型の指定方法は宣言時に、

var 変数名 : 型

という形で宣言する。

AS2からある一般的な型は

数字 Number
文字 String
配列 Array
オブジェクト Object
日付け Date
ムービークリップ MovieClip
テキストフィールド TextField
ボタン Button

他にも色々あるけど基本、「クラス名=型」という認識でOK(あとで補足するけど)

47 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:27:54 ID:F/0Q8Wka
■型ってなによ!? その3

まぁ、型は色々あるけど、最重要なのは

・変数には型を宣言する必要がある
・間違った型のデータを渡すとエラーがおきる

この2点。


var btn : Button = 5

とかやるとエラる。

逆を言えば、変数宣言のところで型を調べれば、
どの変数にどんな値が入ってるとか忘れにくくなる。


とりあえず、ちょっと休憩。
質問がなければ、型の高度な説明は後回しにして、
AS3でのMCの操作方法とかに進むよ。

48 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:29:09 ID:F/0Q8Wka
272 名前:Now_loading...774KB[] 投稿日:2007/05/12(土) 09:30:51 ID:ij2Rps0x
お疲れ様です。とってもわかりやすいと思います。

でも、正直たいがいの人はas1・2で書いたほうが、わかりやすいし、
効率的だと思います。敷居が高すぎるような気がします。

自分は大学の専攻も情報系でjavaやc++なれてるからモジュール性や
エラー発見、なにより速度の面で嬉しすぎるから転向するけど・・・

一般的なflash使いの中では迷惑にしかならないと思う。
なんてゆうか、簡単なことするのにも(as1のonとか)面倒ですよね。
as1もずっと使えるならいいんですが。もしこれからas3強要路線ならflash
は衰退していくような気がします。どうなるんでしょうか。


49 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:30:49 ID:F/0Q8Wka
273 名前:Now_loading...774KB[sage] 投稿日:2007/05/12(土) 09:42:20 ID:9Iphtgzs
質問ー
一度変数に型を宣言してやったら、以降その変数に型を宣言してやる必要はないの?
それともいちいち全てstr:Stringとかって記述するの?

50 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:31:41 ID:F/0Q8Wka
>>49 (273)
かく必要ないです。型は一度コンピューターに「この変数はこの型ですよ」って
伝えればいいだけなので。そう最初に伝えることで変数の処理が高速化します。

で、質問があったのに忘れてました。cs3だとユーザー定義クラスの自動補完とか、
メソッドの宣言へのジャンプとかなさげですね。flexにはあるみたいなのですが。
eclipse使った後だとかなりストレスになります・・・何かいい方法があれば教えてい
ただきたいです。

51 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:36:59 ID:F/0Q8Wka
>>50

代わりに答えてくれてアリガトン

cs3の補完機能はぶっちゃけ微妙だよね。
現状バリバリ書くならFlex2をつかうか、
SEPYみたいな外部エディターのAS3対応待ちなのが現実と思われ。


なんで、ここでもバリバリOOPだぜー!みたいなのは避けて、
もっとカジュアルにAS3書く部分に絞っていこうかなと。

AS1, AS2は、FlashPlayer内に
AVM1(アクションスクリプト・バーチャル・マシーン1)として、存在してるので
AS3とは別に後方互換で存在し続けると思う。
ただ、今後新機能が付いたときに、AS2でその恩威にあずかれるか?
っていうと微妙なんじゃないかと思う。

52 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:38:32 ID:F/0Q8Wka
とりあえずCS3のコーディングを理解してみて、
アニメーションやMADのちょっとした演出にコード使うだけならAS2
バリバリゲーム作って、FGFとかに作品おくるぜー!ってひとはAS3かも
って感じでいいんじゃないかなと。

53 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:53:57 ID:F/0Q8Wka
278 名前:Now_loading...774KB[sage] 投稿日:2007/05/12(土) 10:09:56 ID:ij2Rps0x
>>51 (275)
確かにそうですね。
今までのon、attachmovieはどうすれば??ぐらいわかれば、
OOPじゃなくても、as3の恩恵を受けて今までどおりにかけるよう
になれそうですもんね。as2に慣れてるが、javaはやったことない人
向けぐらいがいいと思います。がんばってください。


まあ難点はあるけどas3の超高速化はとても嬉しい。
今まで遅延のせいでどれだけ苦労したことか。。

54 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:54:38 ID:F/0Q8Wka
■ムービークリップを張ってみる 1

AS2使いにとって最大のビックリは、attachMovieがなくなったことだと思う。
じゃあ、どうアタッチするか?なんで変わったのか!?というお話。

まぁ、とりあえずMC作って、スクリプトから張ってみよう。


・新規シンボルでMovieClipを作って、●を描く。
・ライブラリから作ったMCのリンケージを開く。
・export as actions scriptを選ぶ。

なんかいままでリンケージIDだった部分が、
クラス名と、基底クラスみたいな2つになってると思う。
基底クラスの方は勝手にMovieClipが指定されてると思うので無視。
クラス名のところに "Maru" とか描いておこう。

で、メインのタイムラインの1行目に


var mc : MovieClip = new Maru();
this.addChild( mc );


で、表示されるはず。

55 :hoge ◆AXUssWRNqk :2007/05/21(月) 11:58:09 ID:F/0Q8Wka
■ムービークリップを張ってみる 2

new Maru()

で、ライブラリのMaruクラスを設計図に、
実際のアイテムを作り出して、

addChild で、ムービーをアタッチしたわけです。


-------------------------------------------------------


今までリンケージだったものが、クラスになったけど概念的にはあまり変わらん感じ。

クラスってのは
変数や関数等を1つにパッケージングしたモノを
作るための「設計図」のことなんだよね。
マックのバリューパックのレシピや、熱海旅行ツアー企画書みたいなもん。

クラス(バリューパックって定義とレシピ)があれば、
あとはそれを元に、何個でもバリューパックを生産できるわけですよ。

で、new Maru()が作るパートで、addChild() で ステージに貼り付けてるわけです。

56 :hoge ◆AXUssWRNqk :2007/05/21(月) 12:55:48 ID:F/0Q8Wka
■ムービークリップを張ってみる 2

AS2とAS3の最大の違いは、
ムービークリップの作成と、アタッチを
2段階にわけたことだけど、
これによって何がかわるのか。

・作ったからといって、貼る必用はない
 作るだけで、画面に張らないということもできる。
 計算用、画像処理用にダミーに作って、表示しないとかも可能。


・他のMCの子供に移動できる
 attachMovieで一度はったものは削除しかできないが、
 addChildでは、親の変更が可能

 var mc : MovieClip = new Maru();
myMovieClipA.addChild( mc )
myMovieClipB.addChild( mc )

 とかやるとmyMovieClipAに張ってから、やっぱりmyMovieCLipBに張りなおすことが可能。
 3Dやウィンドウみたいに、前後関係が複雑な場合は便利。

・画面から消すけど、削除しないということもできる。
 今までの removeMovieClipで消すとMCは消滅したけど、
 今回の removeChild は、表示から外すだけなので mc自体は存在してる。
 あとで再利用とかできる。

 var mc : MovieClip = new Maru();
addChild( mc )
removeChild ( mc )
trace( mc ) //表示からはずれたけど、MCは存在してる。

57 :hoge ◆AXUssWRNqk :2007/05/21(月) 13:03:19 ID:F/0Q8Wka
いったん休憩。
質疑応答あったら、ヨロ。


58 :hoge ◆AXUssWRNqk :2007/05/21(月) 13:04:12 ID:F/0Q8Wka
284 名前:Now_loading...774KB[sage] 投稿日:2007/05/12(土) 12:33:33 ID:2WX8Pht3
質問だす!
attachMovieで言うところの深度は、どうやって設定するんでしょうか?
あと、Click、EnterFrameなどのイベントの種類はAS2的に簡単に設定できますか?
Java的解説でお願いしますだおかだワー

59 :hoge ◆AXUssWRNqk :2007/05/21(月) 13:05:58 ID:F/0Q8Wka
>>58 (284)

addChildをすると、MovieClipは自動的に最善面に配置される。
あるいは addChildAt というものを使って、深度指定してaddChildできる。


深度変換は、親になってるムービークリップで

setChildIndex( childMC, depth )
swapChildren( child1, child2 )
swapChildrenAt( depth1, depth2 )

とかを使って行う。



as2のdepthとの違いは、
as3のdepthは必ず0から始まって、
途中でdepthの値が抜けることはないこと。
子供が3ついたら、それぞれのインデックスはかならず 0, 1, 2 になる。

この状態で、1番をremoveChildしたら、2番が1つづれて1番になる。
逆に1番の位置に、新しくaddChildAt をした場合、
現在の1, 2番が、2,3番の位置にずれる。


イベント系をAS2的に楽にする方法は、ディフォルトではない。
なので、これからイベントを簡単に登録するクラスを作ろう、みたいな話になる。

60 :hoge ◆AXUssWRNqk :2007/05/21(月) 13:14:21 ID:F/0Q8Wka
286 名前:15[sage] 投稿日:2007/05/12(土) 13:06:32 ID:HBOvDaOh
質問なんですが
思い切ってJavaからやったほうが
AS3を理解する近道なんですかね?
OOPがいまだにどでかい怪物にしか見えな

61 :hoge ◆AXUssWRNqk :2007/05/21(月) 13:16:29 ID:F/0Q8Wka
287 名前:Now_loading...774KB[sage] 投稿日:2007/05/12(土) 13:12:08 ID:qgqq2sGS
だからオブジェクト指向だなんだと難しく考えたらだめなんだよ。
AS2もAS3もたいして変わらないよ。

62 :hoge ◆AXUssWRNqk :2007/05/21(月) 13:26:42 ID:F/0Q8Wka
>>60 (286)

どれくらいできるのか、何をしたいのかによって違ってくると思われ。

個人的にはデザイン肌の人間にとって、
DOS窓で抽象的なスクリプトかくのは地獄だと思われ。
せめてJavaよりも、processingというアート用Java? に触るほうがよいと思う。

http://processing.org/


クラスの作成、extend, implementを理解しているレベルならば、
前述の結城さんのデザインパターン入門を読むのがオススメ、
Javaがわからなくても、ソースみれば何をやってるかは理解できるはず。
それ読んだあとに、FlashOOPでもよめば大丈夫。

完全にわかんねーよ!!って話なら
AS2でOOP先にやったほうが、実務でも役に立つし楽かもしれない。


OOPっていうのは、特定の問題に対処する特定の先方で
将棋の穴熊とか、四間飛車みたいなモン。
単なる戦法、定石だから、どのシチュエーションで必要か暗記して、
そのシチュエーションで使えばとりあえずOK.

63 :hoge ◆AXUssWRNqk :2007/05/21(月) 13:27:28 ID:F/0Q8Wka
あー、ゴメン。
↑で書いたのはデザパタだった。 寝てないからボケてた・・・

OOPってのはようやくすると、
変数とかダラダラかかないで
ようは整理整頓して、定型処理でやりましょー、みたいな取り決めに過ぎないので、

むずかしく考える必要はなっしんぐ。


実生活でいうと、レシピで料理作ったり、履歴書を同じフォーマットで作ったり、
そういう生き方。アドリブ・一発ネタいくない、みたいな。

64 :hoge ◆AXUssWRNqk :2007/05/21(月) 13:41:29 ID:F/0Q8Wka
291 名前:15[sage] 投稿日:2007/05/12(土) 13:20:12 ID:HBOvDaOh

>>61 (287)
むしろ僕の場合はオブジェクト指向がんがん使えるようになりたいです
今はonClipEventの乱立で何とかやってますが
これを1フレーム目にズラーっと書いたら
もう見る気もしませんw
ちょうどいい機会なのでこの辺で
得体の知れないかいぶつOOPをやっつけちゃうかなって考えてます
やはりそうすると一度JAVAに遠回りしたほうがいいんでしょうか?

65 :hoge ◆AXUssWRNqk :2007/05/21(月) 14:36:24 ID:F/0Q8Wka
292 名前:15[sage] 投稿日:2007/05/12(土) 13:30:16 ID:HBOvDaOh
>>62 (288)
解説ありがとうございます

まだどっちつかずのぺーぺーです
3ヶ月前に初めてHTMLに触れてそっから
JAVAscript→PHP→FLASHとわたり歩いてきました
正直『完全にわかんねーよ!』より下のレベルかと・・・
この前アドビで「AS2によるオブジェクト指向プログラム」っての読んだんですが
全然わかりませんでした

66 :hoge ◆AXUssWRNqk :2007/05/21(月) 14:38:10 ID:F/0Q8Wka
>>65

3言語やってりゃ変数とかfor文とか、基本的なことわわかってそうやね。
このままでもいいんじゃないかな、それじゃあ。

順番的に

・型ってなによ
・ムービークリップを張ってみる ← 今ココ
・とりあえずマウスイベントとかとってみる
・クラスとか作ってみる
・イベントハンドリングの仕組みについて
・簡単にマウスやエンターフレームを使えるクラスを作ろう

みたいな流れでいこうかと思ってる。
そこら辺までくれば、自力で簡単なクラスは作れるようになるかと。

67 :hoge ◆AXUssWRNqk :2007/05/21(月) 14:40:09 ID:F/0Q8Wka
299 名前:Now_loading...774KB[sage] 投稿日:2007/05/12(土) 15:31:04 ID:7PBp95zp
回答どうもです。
メインのタイムラインにしかスクリプト書けないって聞いたんですが
MCのスクリプトはそのままでOKなんですかね?
使えなくなるのはボタンのon()ぐらいですか?

68 :hoge ◆AXUssWRNqk :2007/05/21(月) 14:43:05 ID:F/0Q8Wka
>>67 (299

メインじゃなくても、タイムラインに書くのは依然としてOK
on(press) みたいに、MCによくわからん貼り付け方する奴はNG

69 :Now_loading...774KB:2007/05/21(月) 15:13:10 ID:X35NpiM5
ASはどのバージョンから使ってる人?
2.0から?

70 :hoge ◆AXUssWRNqk :2007/05/21(月) 15:48:01 ID:F/0Q8Wka
331 名前:Now_loading...774KB[sage] 投稿日:2007/05/16(水) 08:47:57 ID:t4sc8v3k
attachMovieをaddChildで書くってのは分かったけど
複数呼び出した時ってどう見分け付けりゃいいの?
for(i=0;i<10;i++){
var mc_hoge:MovieClip = new hoge();
addChild(mc_hoge);
}
1個1個別々の動きさせたいんだけど。

71 :hoge ◆AXUssWRNqk :2007/05/21(月) 15:48:56 ID:F/0Q8Wka
>>70 (331)の見て個別に円回転するmcを10個作ろうと思ったがもうだめだ。
どうしていいのかわからなくなってきた。

function moveBall(rot,radius) {
trace(this);
rot = rot + 10;
if (rot > 360) {
rot -= 360;
}
rad = rot * Math.PI / 180;
this.x = Math.cos(rad) * radius;
this.y = Math.sin(rad) * radius;
}
for (var i:Number = 0; i<10; i++) {
this["ballMc"+i] = new ball();
rotInit = 0;
radiusInit = 100;
this["ballMc"+i].x = Math.random()*300;
this["ballMc"+i].y = Math.random()*300;
this["ballMc"+i] = addEventListener(Event.ENTER_FRAME, moveBall(rotInit,radiusInit));
this.addChild(this["ballMc"+i]);
}

72 :hoge ◆AXUssWRNqk :2007/05/21(月) 15:49:56 ID:F/0Q8Wka
333 名前:Now_loading...774KB[sage] 投稿日:2007/05/16(水) 11:55:34 ID:17JT52mp
>>70 (331)

作ったmc を配列とか、Dictionaryとかに入れて管理するんだ。

var dict : Dictionary = new Dictionary();
dict[ "mc1" ] = mc1
dict[ "mc2" ] = mc2


MovieClip( dict["mc1"] ).x = 100

みたいに管理できる。

73 :hoge ◆AXUssWRNqk :2007/05/21(月) 15:55:21 ID:F/0Q8Wka
>>71 (332)のやり方は、オーソドックスなAS2スタイルの書き方だよね。

AS3だと、MovieClipを拡張して「回転するムービークリップ」クラスを作って、
それをaddChildして放置、ってのが楽かな。

よくOOPは分かりにくいっていうけど、
あれは技法っていうか考え方なんだと思う。

外部の関数を使って、対象のパラメーターを弄る(手続き指向)か、
対象(この場合はMC)自体が回転の関数とか変数持っている(オブジェクト指向)

って違いじゃないかと。大雑把に。


OOP(オブジェクト・オリエンテッド・プログラミング)ってのは、
1つのオブジェクトに関係する関数やプロパティをまとめることで、
この場合は、MCという(オブジェクト)に
回転する機能や、回転速度等とかを関連付けて(オリエンテッド)
プログラミングしてやることなんだと思う。

74 :hoge ◆AXUssWRNqk :2007/05/21(月) 15:56:16 ID:F/0Q8Wka
package{
import flash.display.MovieClip
import flash.events.Event

public class KaitenMovieClip extends MovieClip{
public var speed : Number = 5

//new されたらここが呼ばれる
public function KaitenMovieClip()
{
addEventListener(Event.ENTER_FRAME, onEnterFrame); //エンターフレームイベントと、onEnterFrame関数を結びつける
}

// エンターフレームイベントが起きたら、ここ呼ばれる。
public function onEnterFrame( e:Event )
{
//この例では本当に、rotationで回転するだけ。
this.rotation = this.rotation + speed
}
}
}


直接ここに書いてテストしてないけど、
こんな感じでKaitenMovieClip.asとかを作て、swfと同じフォルダに置く。

で、flaでMC作ってクラスのとこに、このKaitenMovieClipを指定。

そうすれば、 new KaitenMovieClip() で、回転するムービークリップ作れる。
それで勝手に動くMC完成

75 :hoge ◆AXUssWRNqk :2007/05/21(月) 15:57:07 ID:F/0Q8Wka
336 名前:Now_loading...774KB[sage] 投稿日:2007/05/16(水) 13:58:59 ID:ntySUtr/
できたー! >>72-73 (333-334) ありがとう! 凄くわかりやすかった。
なんかオブジェクト思考についていく自信がついた。
下のではじめエラーが出てどうしようかと思ったけど、
MouseEventのimportで動いたし、なんかいろいろやってけそう。
でもこれ外部ファイルだと素っ裸で外歩く気分だね。なんか見られてる気がして落ちつかない。

public function KaitenMovieClip() {
this.x = Math.random()*300;
this.y = Math.random()*300;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
addEventListener(MouseEvent.MOUSE_OVER, onRollOver);
addEventListener(MouseEvent.MOUSE_OUT, onRollOut);
}
public function onEnterFrame(e:Event) {this.rotation = this.rotation + speed;}
public function onRollOver(e:Event) {speed = 20;}
public function onRollOut(e:Event) {speed = 5;}
/////////////
var dict : Dictionary = new Dictionary();
for(var i:Number = 0; i<10; i++){
var mc:MovieClip = new KaitenMovieClip();
dict["mc"+i] = mc;
this.addChild(dict["mc"+i]);
}

76 :hoge ◆AXUssWRNqk :2007/05/21(月) 19:07:40 ID:F/0Q8Wka
■マウスイベントを拾ってみよう その1

途中脱線したけど、MCを張れるようになったら、
マウスイベントを取れるようにしてみる

AS2使いがよく質問する
on(press) や、 mc.onPress = function ができなくなったって、あたりね。

AS3では基本的にイベントの取得は、
addEventListener というものを使って、
「誰が」発信した「どのイベント」を、「どの関数が」うけとるかを、定義して使う。


発信者.addEventListener( イベントタイプ, 受け取る関数 )


雰囲気的には、従来のStage.addListener とか Key.addListener に近い感じ。


なのでAS3では、例えばマウスイベントを受け取りたい場合、
まずイベントを受け取る関数を用意して、ムービークリップに、
マウスイベントはその関数に渡せって登録してやる必要がある。

それがさっきの

発信者.addEventListener( イベントタイプ, 受け取る関数 )

77 :hoge ◆AXUssWRNqk :2007/05/21(月) 19:08:23 ID:F/0Q8Wka
■マウスイベントを拾ってみよう その2

なんで、こんな風にかわったのか? っていうと、
従来の onPress 的やり方は、楽な分1つ弱点があったから。

それは、1つのon○○には、1つのfunction しか割り当てられなかったこと。

このせいで機能拡張とかすると、昔のコードを消したり、作り直す必用がでたりした。


addEventListener方式のいいところは、1つのイベントに何個も関数を定義できること。

myMC.addEventListener( MouseEvent.MOUSE_DOWN, onPress1 )
myMC.addEventListener( MouseEvent.MOUSE_DOWN, onPress2 )
myMC.addEventListener( MouseEvent.MOUSE_DOWN, onPress3 )

とかやれば、myMCがクリックされたらonPress1, onPress2, onPress3 の3つが呼び出される。
この方法だと、あとでマウス押したら音もつけなきゃ、とかエフェクトもつけなきゃってときに
前のコードに手をいれなくてもよかったりする。

単体で使う分にはちょっと面倒だけど、拡張するときは楽なんだね。

78 :hoge ◆AXUssWRNqk :2007/05/21(月) 19:09:34 ID:F/0Q8Wka
■マウスイベントを拾ってみよう その3

で、実際にイベントを使ってマウスをとってみよう。
例によって1フレ目にずらずらと書く。


//まずMouseEventとMovieClipをインポート
import flash.events.MouseEvent
import flash.display.MovieClip

var mc : MovieClip = new ライブラリでリンケージ設定したMC()
addChild( mc ) //MCを貼る

//mcのマウスダウンイベントを onPress に渡すように登録
mc.addEventListener( MouseEvent.MOUSE_DOWN, onPress )

//イベント受け取る関数
//イベントを受け取る関数は、引数で登録したイベントが渡される
function onPress( event : MouseEvent ){
var target : MovieClip = MovieClip( event.currentTarget )
trace( target, "がクリックされました。" )
}

こんな感じ。
マウスイベントの種類は、MouseEventクラスをオンラインドキュメントかなんかでチェックすれば、
ロールオーバーとかアウトとか色々あるのがわかる。

ここで、いったん休憩。
質問あったらどうぞ。

79 :hoge ◆AXUssWRNqk :2007/05/21(月) 19:10:32 ID:F/0Q8Wka
340 名前:Now_loading...774KB[sage] 投稿日:2007/05/16(水) 17:04:26 ID:ntySUtr/
>>78 (339)
カーソルが変わらないんですが
どこか設定を変えないといけないんでしょうか

80 :hoge ◆AXUssWRNqk :2007/05/21(月) 20:38:26 ID:F/0Q8Wka
カーソルが自動で変わるのば、ボタン系だけ。
MCでマウスイベントを取ってもかわらない。

myMovieClip.useHandCursor = true で対応する感じ。

ここらを、>>334 でいったような手続き型でやるとメンドイので、
MovieClipButtonみたいなクラスを作って、その初期化で全部設定してやるとよいかと。


このまま次か、次の次の章あたりでその辺はサポートする予定。

81 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:42:16 ID:h3Ybx4rK
346 名前:Now_loading...774KB[sage] 投稿日:2007/05/16(水) 18:19:36 ID:MpEwQXTq
ストリクトモードだと全くコンパイルできねーッ!
これはストリクトモード外すと何か不具合あるのかな?

82 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:43:04 ID:h3Ybx4rK
>>81 (346)

バグが見つけにくくなる。

83 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:43:56 ID:h3Ybx4rK
361 名前:Now_loading...774KB[sage] 投稿日:2007/05/18(金) 14:37:02 ID:KhZiWbep
なんか326あたりから良スレになってきた予感

結構ためになる。特にムービーやボタンに直接AS書いていた俺にとっては。
結局addEventListener方式に慣れるしかない・・・のは仕方がないけど、やっぱやりずらい、というか理解するの難しい。
俺はビジュアルデザインメインだからアレだけど、逆にプログラマー的にはやりやすいのかな?やっぱ?
それでもムリしてこの時期AS3.0に移行すべきかね?AS2.0のほうがやりやすいんだけど、ここでふんぎり付けないと乗り遅れますか?
あと、やっぱ3.0のこういうイベント系でもここまできたら、外部.asでまとめ書きするのに慣れた方がよいかな?
クラス(?)ファイルをライブラリ(flaのじゃなくて自分のね)に持っておいて使うとか。そういう方向が正規の方向なのかとか考えてしまう。
クラスへの代入処理一つとってみても、コンストラクタ関数挟んでインスタンス作成したりとか、なんとなく回りくどく感じて何のための便宜性なのかとか理解できないし。
コンストラクタ関数って絶対にクラスファイル名と同じ名前付けなきゃいけないんだよね?逆に同じ名前を付けることによって自動的にコンストラクタ関数になるってこと?
こういう初歩的なことから勉強し直さなきゃならない気がしてきた、それでもやるべきか、2.0でマターリするべきか・・・どうよ?


84 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:44:40 ID:h3Ybx4rK
>>83 (361)

バナーとか、スプラッシュアニメとかそういうのならば、AS2で全然問題ないと思う。
というか時代の流れ的に、flash11か12ぐらいでjavascriptが動くようになると思うし。

ただ今後しっかりしたサイト作るときに、
SE,コーダー系がAS3にいっちゃった場合のことを考えると、
最低限はわかったほうがいいんじゃないかと。

スキンやデザイン作る場合でも、まったくAS3わからないと
コーダーと連携ができなくて仕事支障がでる可能性はあると思う。


ビジュアルデザイン専門の場合は、
ムービークリップ数百個動かせるぜ!!
とかエフェクトバリバリだぜ!!
みたいな利点はあるんで、
そこら辺とマウス・エンターフレーム・ロード周りだけ抑えておけばいいんじゃね。

85 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:46:17 ID:h3Ybx4rK
■クラスを作ってみよう その3

また微妙に間違えたよ俺・・・ ゴメンナサイゴメンナサイ。

package{
  import 使う.クラスは.ここで.インポート

  public class クラス名
  {
    public var 変数名 : 型
    public var 変数名 : 型

    public function クラス名と同じ名前の関数()
    {
      newすると最初にここが実行される。
    }    

    //値を返さない関数
    public function 関数名( 引数 : 型 ):Void
    {
     ここに関数処理
    }

    //値を返す関数
    public function 関数名( 引数 : 型 ) : 帰る値の型
    {
     ここに関数処理
      return 値
    }
  }  
}

86 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:46:59 ID:h3Ybx4rK
■クラスを作ってみよう その2

まず上から意味をざっと説明すると。

・一番外側は package { } で囲む。
 意味はまだわからなくてOK。そういうもんだと思って。

・次に使うクラスをインポート。
 クラス内でMovieClip使うなら、flash.display.MovieClip みたいに指定してインポ

・クラス宣言 public class クラス名 {} で囲む。
 public とかはまだ意味わからなくてOK。

・変数宣言
 頭にpublicつけるのと型指定を忘れずに。public の意味は、今は気にしないでOK。

・クラス名と同じ名前の関数
 newで作成するとまずコレが呼ばれます。初期化処理はココ。専門用語でコンストラクタ。

・関数
 頭に public 、引数にもちゃんと型指定、
 戻り値があるなら最後に戻り値の型、なければvoid をつける。


だいたい基本作法はそんなとこ。
まぁ、こまかいとこは追々サンプルつくりつつサポート。

87 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:51:18 ID:h3Ybx4rK
■クラスを作ってみよう その3

で、OOPってなんだっけをまずちょっと復習。
産業で説明すると

オブジェクト指向は、
関連する機能と値を1つにまとめて
クラスというものにする。

そんだけ。それ以上でもそれ以下でもない。

考え方的には
関連する絵とアニメーションとフレームスクリプトをまとめて
ライブラリにシンボルとして登録するのとあまり変わらない。


88 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:51:59 ID:h3Ybx4rK
■クラスを作ってみよう その4

たとえば、ゲームで使うスコア計算用のクラスとかを作ってみよう。
つまり、スコア計算に関連する関数、プロパティをまとめあげて1つにするってことね。

一度作ったら、一生使いまわせるつもりで考える。

仕様的にはとりあえず。

・スコアの記録、保存
・ハイスコアの記録
・カンスト(スコア上限値)設定
・表示用に0000300みたいなテキストを出力可能

こんな感じでいってみよう。

89 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:52:42 ID:h3Ybx4rK
■クラスを作ってみよう その5

まず↑の仕様から、変数と関数を決める

変数
・現在のスコア
・ハイスコア
・スコアの上限値

関数
・現在のスコアをセット
・現在のスコアをゲット
・ハイスコアをゲット
・テキストとして出力

こんな感じかな


90 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:53:25 ID:h3Ybx4rK
package{
  public class Score{
    //protected変数は、クラスの外からアクセスできません(内部処理用)。
    protected var _score : Number =0 //スコア
    protected var _hightScore : Number = 0 //ハイスコア
    protected var _maxScore : Number = 99999 //上限

    //初期化
    public function Score( maxScore : Number)
    {
     _maxScore = maxScore
    }

    //スコア取得
    public function getScore():Number
    {
     return _score
    }

    //ハイスコア取得
    public function highScore():Number
    {
     return _highScore
    }

    //スコア設定
    public function setScore( value : Number ):void
    {
      これから書きます!
    }
  }
}

91 :hoge ◆AXUssWRNqk :2007/05/22(火) 12:54:14 ID:h3Ybx4rK
■クラスを作ってみよう その6

ざっと大枠を書くと↑のようになる。

使うときは

var score : Score = new Score(99999)
score.setScore(3200)
score.setScore(155)

trace( score.getScore() )
trace( score.getHighSocre() )

みたいにして使う。
一度るくれば、
これでもうハイスコアやカウントストップの計算は一生書かなくて済むようになる。

OOPメンドクサって言う人もいるけど、こういう一生使うメンドイ処理はクラスにして、
普通にオーサリングする部分はアンチOOPでダーティに書くとか
そういう組み合わせもありだと思うよ。


うえのコードを軽く説明したら、本命のsetScore関数と、
0003000みたいに表示する部分を作る。

92 :hoge ◆AXUssWRNqk :2007/05/22(火) 19:17:29 ID:h3Ybx4rK
■クラスを作ってみよう その7

まず気になるのは変数の宣言のところにある、protected

これなによ!?っていう感じだけど、
protectedってのは、「クラスの外部からアクセスできませんよ!!」て意味。
myClass._score とかやってもエラーになる。

クラスの内部でつかう内部処理用の変数や関数には、protected って書いておくわけ。
よくでてくる public ってやつは、誰でも外からも中からもアクセスできる関数・変数。

でスコアの定義や取得は、関数getScore, setScore を使ってやらせる。

なんで変数を直接いじっちゃダメなの!?
っていう疑問があるけど、それは

・ハイスコア直接いじられると困る。
・スコアセットしたら、自動でハイスコア計算させたい。

そんな理由からです。
OOPでは、「やっちゃいけないことはできなくする」という原則があるので、
ハイスコア勝手に操作できないように、highScoreって変数も作らないし、
setHighScoreもないわけです。

「やっちゃいけないことはできなくする」ってことは、
使うときに致命的なミスをしないですむって利点があるの。

東海原発で排水汲み上げにバケツ使ったとかは、
やっちゃいけないのにできちゃったのいい例ね。
メルトダウンするとこだよ。

93 :hoge ◆AXUssWRNqk :2007/05/22(火) 19:34:45 ID:h3Ybx4rK
■クラスを作ってみよう その8

で、いよいよ本命の関数 setScore を書いてみる。

public function setScore( value : Number ):void
{
  if( value > _maxScore ){
   value = _maxScore // 限界値以上だったらカンスト
  }

  _score = value // 現在のスコアに設定

  if( _score > _highScore ){
   _highScore = _score //ハイスコアだったら更新  
  }
}


こんな感じ、超楽チン。

スコアのセットは、setScoreしか手段がないから、
かならずスコア更新、上限チェック、ハイスコアチェックはセットで行われるですよ。
変数がprotectedだから、スコアだけ更新とかハイスコアハックとかはできないのです。
バグさらば

これがOOPのちょっといいところ。

94 :hoge ◆AXUssWRNqk :2007/05/22(火) 19:36:25 ID:h3Ybx4rK
■クラスを作ってみよう その9

で、一応00003000みたいのも表示できるようにする。

//スコアを文字化
public function getText( keta:Number ):String
{
  var str : String = ""
  
  //桁数だけ0をくっつける。
  //たとえば5桁なら00000
  for(var i:Number = 0; i<keta; i++){
    str = str + "0"
  }

  str = str + _score //スコアを足す。000003450とかになる。

  //後ろから桁数分だけ切り抜く0000「03450」
  str = str.subStr( str.length - keta, keta );

  return str
}


こんな感じ。
とりあえず、
ハイスコアも文字化したいとか、
桁数は指定するより、最大値から自動で計算するほうが楽じゃね?
とか改良の余地はあるけど、とりあえず完成!!

もうちょっと続くけど、いったん休憩で
質問コーナーです。

95 :hoge ◆AXUssWRNqk :2007/05/22(火) 19:39:13 ID:h3Ybx4rK
408 名前:Now_loading...774KB[sage] 投稿日:2007/05/20(日) 09:45:35 ID:5xVzA+4L
>一度作ったら、一生使いまわせるつもりで考える。
とかってちょっと考え方が古くね?

96 :hoge ◆AXUssWRNqk :2007/05/22(火) 19:42:04 ID:h3Ybx4rK
>>95 (408)
まぁOOPのコンセプトわかりやすくする為に
タテマエは一応言っといたほうがわかりやすいかなとwwwwwww

97 :hoge ◆AXUssWRNqk :2007/05/22(火) 19:47:26 ID:h3Ybx4rK
410 名前:Now_loading...774KB[sage] 投稿日:2007/05/20(日) 10:43:09 ID:d9we2VE3
>>94 (402)の_highScore宣言のところで初期値99999が無意味じゃね?
明示的に指定しなくてもいいように、コンストラクタのデフォルト引数に設定した方がいいよ。



98 :hoge ◆AXUssWRNqk :2007/05/22(火) 20:47:50 ID:h3Ybx4rK
411 名前:Now_loading...774KB[sage] 投稿日:2007/05/20(日) 10:43:57 ID:d9we2VE3
_highScoreじゃなくて_maxScoreだったorz

99 :hoge ◆AXUssWRNqk :2007/05/22(火) 21:03:39 ID:h3Ybx4rK
>>98 (410)

続きで初期値 と setter / getter をやろうとしてたんで、
突っ込みナイス。

100 :hoge ◆AXUssWRNqk :2007/05/22(火) 21:04:42 ID:h3Ybx4rK
422 名前:Now_loading...774KB[sage] 投稿日:2007/05/20(日) 16:12:34 ID:vpcHcJeq
>>87 (399)
>オブジェクト指向は、
>関連する機能と値を1つにまとめて
>クラスというものにする。
>
>そんだけ。それ以上でもそれ以下でもない。

いくらなんでもこりゃねえだろ

101 :hoge ◆AXUssWRNqk :2007/05/22(火) 21:05:26 ID:h3Ybx4rK
423 名前:Now_loading...774KB[sage] 投稿日:2007/05/20(日) 16:37:12 ID:BGM0L3t0
最初はそれでいい
文系OOP厨のせいで小難しく思われがちだから
それぐらいで丁度いい
慣れたらより有効な使い方を見れるようになればいい

102 :hoge ◆AXUssWRNqk :2007/05/22(火) 21:07:37 ID:h3Ybx4rK
スマン・・・ 書いてる人だけどそれダメだった????

>オブジェクト指向は、
>関連する機能と値を1つにまとめて
>クラスというものにする。

まずそういう基本思想があって、
機能や特性を分析してくと、
物事はグルーピングや階層構造で分類ができて、
抽象化とかポリモーフィズムとか来るんだと思ってたんだが・・・

俺も別にOOPマスターじゃないんで、
間違ってたら気軽にツッコミ頼む。

103 :Now_loading...774KB:2007/05/22(火) 21:19:30 ID:HhAS5Q9D
>>77
1つのイベントに何個も〜ってあるけど
ツギハギしすぎたら重くなる?

104 :hoge ◆AXUssWRNqk :2007/05/22(火) 22:05:26 ID:h3Ybx4rK
>>103

1個よりは重くなるけど、数千個とかない限り気になるレベルじゃあないと思う。


105 :Now_loading...774KB:2007/05/22(火) 22:25:28 ID:HhAS5Q9D
トンクス。あんまり神経質になる必要は無いわけか。

106 :hoge ◆AXUssWRNqk :2007/05/23(水) 12:34:11 ID:Gt3lIkF5
■クラスを作ってみよう 10  setter/getter ディフォルト値

さて、ようやっとできたScoreクラスだけど。
何気に使いにくい部分があるよね。

var score : Score = new Score( 9999 )

みたいに毎回上限決めなきゃなんないとことか、
スコアの更新時に

score.setScore( score.getScore()+300 )

みたいに書かなきゃいけないところとか・・・
なんか、毎回単純にプロパティ弄るほうが楽だったんじゃ・・・
って気もしてくる。


そんなときには、setter / getter や、
ディフォルト値ってものを使えば、
クラスで関数にアクセスしたり初期化するときの手間を一気に軽減できたりするよ。


107 :hoge ◆AXUssWRNqk :2007/05/23(水) 12:43:22 ID:Gt3lIkF5
■クラスを作ってみよう 11 ディフォルト値

ディフォルト値ってのは、
関数を呼び出すときに引数を省略できる仕組み、
省略した場合に、代わりにディフォルトの値を渡してやる仕組みのこと。

例えばScoreクラスは初期化の関数Scoreで
毎回スコアの上限を決めていたけど、
ディフォルト値を書いてしまえば、
もうクラス作成時に毎回上限を決めなくても済むようになる

public function Score( maxScore : Number = 9999)

関数( 引数名 : 型 = ディフォルト値 )

という風に、引数宣言の後ろにイコール初期値を書いてしまえば、
省略時にはその値で引数が渡されることになる。


また↓みたいに、複数の引数にディフォルト値を渡すことも可能。

myFunction( hoge1:Number = 9999, hoge2 : Number = 1300)

1つだけ注意しなければならないのは、
1つの関数にディフォルト値のある引数と、
ディフォルト値のない引数が混在する場合。
この場合、ディフォルト値のない引数が、必ず手前にこなければならない。 

hoge:Number, hoge2:Number = 999

みたいに。

108 :hoge ◆AXUssWRNqk :2007/05/23(水) 12:50:42 ID:Gt3lIkF5
■クラスを作ってみよう 11 getter と setter

クラスを使いやすくする、もう1つの便利機能はgetter と setter
getter/setter は「プロパティのフリ」をした関数を作る機能。

public function set score( value:Number ):void
{
setScore(value)
}

public function get score():Number
{
return getScore(value)
}

みたいに、 set, get ってのがついた関数scoreを宣言すると、

var myScore : Score = new Score();
myScore.score = myScore.score + 1

みたいに、関数scoreがプロパティとして使えるようになる!
値を設定するときにはset, 値を取得するときには get のほうが呼ばれることになる。

これで、普通に値が設定できるのに、
自動でハイスコアの判定もしてくれるプロパティが作れるよ。


setter / getter の詳しい説明は次レスで。


109 :hoge ◆AXUssWRNqk :2007/05/23(水) 13:00:19 ID:Gt3lIkF5
■クラスを作ってみよう 12 getter と setter

さてプロパティへの値の読み書きを、関数に転送してくれる
setter/getterの書き方は以下の通り。

public function set プロパティ名( 値 : 型) : void
public function get プロパティ名() : 型

setter / getter 両方用意するのが基本だけど、
片方だけしか作らなければ、読み込み専用、書き込み専用のプロパティが作れる。
totalFramesとか、bytesLoadedとかがちょうどそんな感じだよね。

いい忘れてたけど、最後についてる型は、値を返す場合に帰ってくる値の型を書く場所。
setの方は、値を返さないのでvoid
getの方には、返す値の型を書いてやる。


・プロパティの変更と同時に、色々な処理が行える。
値が変わった瞬間に表示をアップデートとか、イベントを発行とか、
いままで値を変える→update()みたいのを呼ぶ、
みたいにやってたことが一発でできるようになる。
必ずセットで実行されれば、呼び忘れもなくなるし便利。

・読み込み専用、書き込み専用の変数が作れる。
上に書いたように、書き込み専用、読み込み専用の変数が作れるといいことがある。
それは事故が減るってこと。


プロパティに、特殊な処理を連動させたいとき(この場合ハイスコア計算)をしたいときは、
setter / getter を使えばOKって感じ。
ほんとは細かいことも色々あるけど、まぁ大まかそんな感じ。
質疑応答なければ、次に進むよ。

110 :Now_loading...774KB:2007/05/23(水) 14:29:06 ID:e5OYUP44
今さっきこれを見つけて追いついたw
すごい分かりやすくて、ちょっと感動

111 :Now_loading...774KB:2007/05/24(木) 03:19:01 ID:CBc0mAs6
>>109
ステージサイズとかフレームレートとかも
クラスで定義すればいいのかい?

112 :hoge ◆AXUssWRNqk :2007/05/24(木) 15:45:20 ID:+N4x72mx
>>111

クラスでやっても問題ない。
多分一般的にはタイムラインと関連づけるルートのクラスの頭で初期化するか、
StageInitializeみたいなクラス作って関数一発で初期化できるようにするんじゃないかな。

113 :Now_loading...774KB:2007/05/24(木) 18:28:01 ID:5FI198Hh
すごく勉強になります!
質問です。
>>107
引数のところでデフォルトの値を設定できるのですが、これって
public function Score():void{
  var maxScore : Number = 9999
と書くのと違いがあるのでしょうか?
前から不思議に思ってまして、、、

114 :hoge ◆AXUssWRNqk :2007/05/24(木) 18:54:20 ID:+N4x72mx
>>113

省略しなかった場合の動作と比べるばメリットは色々あるよ。

function fillColor( col : Number = 0, a : Number = 1 ){
 this.graphics.beginFill( col, a)
 this.graphics.drawRect(0,0,100,100)
 this.graphics.endFill();
}

例えば↑みたいな関数だったら、
関数呼ぶときに、引数渡さなければ自動で黒い四角を描いてくれる。
値があればその色で描いてくれる。

両方できるってのと、Flex2とかでオートコンプリートで引数のガイドがでるのが利点かな。
あとディフォルト値用に、変数一個作らなくてすむし、
引数の有無も毎回チェックしなくてすむ。

115 :Now_loading...774KB:2007/05/24(木) 20:43:49 ID:5FI198Hh
>>114
省略した場合のみ有効になるんですね、、、
無条件で値を設定するのかと思ってました。
ちゃんと書いてましたね、、、大変失礼しました。
とぼけた質問に回答ありがとうございました!

116 :Now_loading...774KB:2007/05/24(木) 22:32:57 ID:phJz6z81
>>107
これってAS2.0でも可能なの?
それとも3.0からの書式なのかすらん。

117 :Now_loading...774KB:2007/05/24(木) 23:35:52 ID:ExlGMHYB
Processingどうやって勉強した?
何かオススメの資料ある?(Nature of code以外で)
今月末にFriends of edからProcessingの800ページ
の本でるよ、ビジュアル表現のアルゴリズム考えるの
不得意だから、そういうのでサンプルコード沢山みたら
結構いけるようになるかなとか最近思ってるんだけど

118 :hoge ◆AXUssWRNqk :2007/05/25(金) 00:01:42 ID:LcVDUixJ
>>117

基本 nature of code が神だよね。

それなりにコードや数学のことがわかるのなら
Galerry of Computationがオススメ。

http://www.complexification.net/gallery/

Friends of EDで出る本は多分、ケイシー・リアスの奴だから
買っておいて損はないと思う。
あとは built with processing でググルとかかな。

processingをやる場合は日本語の資料には頼らないで、英語の文献をあたるか
ソースコードから勉強するのが一番いい。
関数も少ないし、基本1ファイルだからそのほうが力つくし、効率いいと思う。


119 :Now_loading...774KB:2007/05/25(金) 01:30:08 ID:r17iX9Tf
>>118
なるほど、参考になります。
数学は苦手意識強いんで、そこらへんも合わせて
Nature of codeであげられてる参考文献などあたって
みようかな、などと考えてます。ありがとうございます。

120 :Now_loading...774KB:2007/05/25(金) 11:53:35 ID:J7NxuIFv
package {
import flash.display.Stage;
public class stagesize {
public function get sizeW() {
return Stage.stageWidth;
}
public function get sizeH() {
return Stage.stageHeight;
}
}
}

trace(stagesize.sizeW+":"+stagesize.sizeH);

クラスの中でステージのサイズ我必要なのですがどうやって取得するんでしょうか。
思いつく限りでやってみたのですがエラーが出てしまいます。

1119: Access of possibly undefined property stageWidth through a reference with static type Class.

121 :hoge ◆AXUssWRNqk :2007/05/25(金) 12:33:22 ID:CyaN59Ds
>>120

Stageはもうstaticでアクセスするものじゃなくなっちゃったんだ。

画面にaddChildしたMovieClipやSpriteとかの
myMovieClip.stage で取得できます。

addChildするまではstageプロパティはnullを返すのがやっかいなところ。

なんで、StageReferenceクラスとかを作って、
swf実行時の一番頭でStageReference.stage とかにステージを渡してやる。

で非MovieClip系のクラスからは、StageReference.stageとかを読みに行くようにするんじゃないかな。
他の人はどうやってるか知らないけど、自分はそうやってる。



122 :hoge ◆AXUssWRNqk :2007/05/25(金) 13:56:04 ID:CyaN59Ds
■AS3でonPressを実装する その1

さて、いよいよAS3でonPressやonEnterFrameを実装しようではないかというお話。
とりあえずコード書いてみた。


package{
 public class OldStyleMC extends MovieClip{

  //ユーザーが定義できる関数は変数として宣言
  public var onEnterFrame : Function
  public var onPress : Function
  
  public function OldStyleMC()
  {
   addEventListener( Event.ENTER_FRAME, __onEnterFrame, false, 0, true);
   addEventListener( MouseEvent.MOUSE_DOWN, __onPress, false, 0, true);
  }
  
  protected function __onEnterFrame( e:Event ) : void{
   if(onEnterFrame != null){
    onEnterFrame()
   }
  }

  protected function __onPress( e:MouseEvent ) : void{
   if(onPress != null){
    onPress()
   }
  }
 }
}

123 :hoge ◆AXUssWRNqk :2007/05/25(金) 14:00:02 ID:CyaN59Ds
このクラスをMovieClipの代わりに使うと、

var myMC : MovieClip = new OldStyleMC()
myMC.onEnterFrame = function():void{ trace("this") }


とか


myMC.onEnterFrame = hoge

function hoge()
{
 trace("hoge");
}


といったように、AS2っぽくイベントハンドリングができて、
ちょっと幸せな気分になれる。

以下、どう動作するか解説。

124 :hoge ◆AXUssWRNqk :2007/05/25(金) 14:04:53 ID:CyaN59Ds
■AS3でonPressを実装する その2 継承のお話

まず気になるのが、1行目のクラス宣言の部分。

public class OldStyleMC extends MovieClip

「extends MovieClip」の部分。 
extends ってなんですか!?ってお話。

extend は日本語では「継承」と呼ばれていて、
あるクラスをベースに、新しいクラスを作ること。
これをやると、元のクラスの機能に新しい機能を追加できる。

ザクUにブースターつけて、
ザクU改や高機動ザクを作るような感じだ。

今回はMovieClipをパワーアップさせて、
OldSytleMCってクラスを作りますって宣言なわけ。



125 :hoge ◆AXUssWRNqk :2007/05/25(金) 14:10:24 ID:CyaN59Ds
■AS3でonPressを実装する その3 継承のお話

継承元になるオリジナルを親、または先祖。
新しく作ったほうを子、または子孫と呼ぶ。

オブジェクト指向初心者は、どっちが親で子かってので混乱しがちだけど、
これは(拡張した)子の方が高機能で、親の方が低機能なことが
原因なんだと思う。
直感的には親のほうが偉いし、強そうだからね。

だから親子の理解がゴッチャになったら、「子孫は先祖より進化してる!」
って考えるとわかりやすい。


あと憶えておいて欲しいのは、「型」について。
子は親の型の変数にも値を代入できる。

var mc : MovieClip = new OldStyleMC()

とかが大丈夫ってこと。
子は親の拡張だから、親の変数、関数を全て持ってる。
だから親の型に入れても大丈夫なわけ。

ほかにも細かいことはいっぱいあるけど、今は割愛。
今つっこんでやりたい人だけ super とか override とかの概念を調べるといいと思う。

126 :hoge ◆AXUssWRNqk :2007/05/25(金) 14:14:21 ID:CyaN59Ds
■AS3でonPressを実装する その3 関数も変数として扱えるよ

次にくるのは

public var onEnterFrame : Function
public var onPress : Function

という部分。
何故か、「関数」を「変数」として定義してる。
これは関数も、実はFunction型の変数として扱えるから。

なんで変数にしてるか!?っていうと、

myOldStyleMovieClip.onEnterFrame = ...

みたいに、AS2的に関数を定義したいから。
関数が変数なら(ややこしい)、代入できるので、
普通の関数宣言を使わずにこういう風にしてるってわけ。

127 :hoge ◆AXUssWRNqk :2007/05/25(金) 14:16:35 ID:CyaN59Ds
■AS3でonPressを実装する その4 省略

コンストラクタ(初期化部分)の説明は、もう割愛してもいいよね。
関数__onEnterFrameと、__onPressを、イベントに登録してるだけ。


128 :hoge ◆AXUssWRNqk :2007/05/25(金) 14:22:19 ID:CyaN59Ds
さて、いよいよこのクラスのキモの部分、
__on〜の部分。

protected function __onEnterFrame( e:Event ) : void{
 if(onEnterFrame != null){
  onEnterFrame()
 }
}

onEnterFrameイベントを受信して、呼び出されるわけだけど。
ここでさっき定義した変数 onEnterFrame の中身が空っぽかをチェックしてる。

で、中身が入ってたら・・・

そう変数onEnterFrameは、function型の変数だから
中身には関数が入ってるよね。
なんで、それ(変数内の関数)を onEnterFrame() で実行してやる。

これでめでたく

myMC : OldStyleMC = new OldStyleMC()
myMC.onEnterFrame = function(){ trace("test") }

みたいに、関数をわたしてやれば
AS2ちっくに関数が実行されるわけです。
これで大分MovieClipの操作が楽になった。

129 :hoge ◆AXUssWRNqk :2007/05/25(金) 14:23:10 ID:CyaN59Ds
■AS3でonPressを実装する その6 省略


とりあえず、そんな感じで質疑応答。
なければ進みます。

130 :Now_loading...774KB:2007/05/25(金) 14:29:58 ID:nqykcNLw
onEnterFrameとかはas2みたいに予約語なわけ?それともただの変数名?

131 :hoge ◆AXUssWRNqk :2007/05/25(金) 14:54:28 ID:CyaN59Ds
>>130

ただの変数名
onEnterFrameってfunction型の変数を作ってるだけ。

名前をAS2と一緒にしたのは、使いやすくすr為。

132 :Now_loading...774KB:2007/05/25(金) 15:28:51 ID:SqXpGzhk
ためになる。ありがとう。

思いつきだけど

private var __onEnterFrame:Function;

public function set onEnterFrame( f:Function ):void {

  removeEventListener(Event.ENTER_FRAME, __onEnterFrame); // 重複登録はナシ

  if(f != null) {
    __onEnterFrame = f; // 確かAS3.0は自動でクロージャされるよね?(^^;
    addEventListener( Event.ENTER_FRAME, __onEnterFrame, false, 0, true);
  }
}

こんな感じで__onEnterFrameの空回りを防げたりする?
AS3の環境がないので未チェックでごめんなさい。。

133 :Now_loading...774KB:2007/05/25(金) 15:38:06 ID:SqXpGzhk
> // 確かAS3.0は自動でクロージャされるよね?(^^;

読み返しててなんか日本語が違う気がする。
クロージャがデリゲートされるっていうか、元のthis参照を保ったまま渡されるというか。
適切な表現がわからん、ごめんなさい。

134 :hoge ◆AXUssWRNqk :2007/05/25(金) 15:56:16 ID:CyaN59Ds
>>132

うん、それがもっと正しい書き方だと思う。
ただ、その場合__onEnterFrameを直接イベントに登録しないで、
間にもう1つ関数挟ましたほうがいいかも。

そのままだと
__onEnterFrameに渡すクロージャには、 
function(e : Event ){} みたいにイベントを引数にしなきゃならないからメンドイ。


AS3の関数はthisスコープが保存されるって認識はあってるよ。
ここはAS2との大きな違いだよね。

参照までAS2チックにするには、
関数実行をapplyで行うようにすればいいんじゃないかな。
クラスのプロパティで参照先を自身にするか、
オリジナルにするか、クロージャにするか設定できるようにしてもいいかもしれないと思った。

135 :Now_loading...774KB:2007/05/25(金) 18:24:37 ID:sERybIQ1
AS3ではバインドメソッドとメソッドクロージャの挙動はぜんぜん違うよ。
バインドメソッドのthisはapplyで他のスコープを設定しても常に元のスコープ
を参照するはず。
レキシカル環境への参照はどちらも保持するけどね。

136 :Now_loading...774KB:2007/05/25(金) 18:28:47 ID:sERybIQ1
ttp://www.fumiononaka.com/TechNotes/Flash/FN0608004.html
参考・予習用におなじことやってるサイトのアドレス。

137 :Now_loading...774KB:2007/05/25(金) 19:02:27 ID:J7NxuIFv
>>132からいきなり難しくなってまいりました。

138 :hoge ◆AXUssWRNqk :2007/05/25(金) 19:16:11 ID:CyaN59Ds
>>135
あ、ここら辺は知らなかった。
こんど色々調べてみる。サンクス。

>>137
ここはまぁ、質疑応答だし。
そこそこアドバンスドな内容だから気にしなくていいと思う。


139 :Now_loading...774KB:2007/05/27(日) 14:47:42 ID:RJXXdxDO
>>78
onpressつかうなら
addEventListener ( 'mouseDown', callback_handler).
で定義してください

とかいうエラーが出るんですが

mc.addEventListener( MouseEvent.MOUSE_DOWN, onPress )
これが定義ですよね?

140 :hoge ◆AXUssWRNqk :2007/05/27(日) 19:13:02 ID:1gn5MzMq
>>139

あぁ、そうか普段Flex2だから忘れてた。

AS3で従来のonPressがなくなったせいで、
onPressって名前の関数作ると警告がでる
Flash CS3のいらん親切機能。

たんなる警告でエラーじゃないから無視してOK.


あと問題になってる部分は

public var onPress : Function

のほうかな。
ここで、FlashCS3は「onPressはねぇから、マウスおしてもなにもおきねぇぞ」って警告してくる。
↑のコードはちゃんと、addEventListenerで登録して、それをonPressに転送してるだけだから無問題。

141 :Now_loading...774KB:2007/05/27(日) 23:31:06 ID:RJXXdxDO
そうだったんですか

addEventListener( MouseEvent.MOUSE_DOWN, onPress )

これだと警告が出なかったので
どういった訳で警告が出るのかよく分かりませんでした
でも問題無く使えるんですね
ありがとう

142 :132:2007/05/28(月) 00:00:26 ID:0sij7C04
>>134

イベントが引数にいるのか。じゃあ
__onEnterFrame = f;

__onEnterFrame = function(e:Event):void { f(); }
もしくは別にメソッドを定義しておいてfを代入とか。
よくわからなくなってきたので、とりあえずapplyとメソッドとFunction型プロパティと無名関数の挙動について調べ直してくる。

143 :hoge ◆AXUssWRNqk :2007/05/28(月) 12:55:23 ID:F8FuyS4N
>>142

そうそう、アプローチ的にはそんな感じに1枚かませる。
ただクロージャーをイベントリスナに登録すると
removeEventListenerできないから要注意。

AS3は以外と参照消し忘れでエラることが多い。

144 :hoge ◆AXUssWRNqk :2007/05/28(月) 14:20:42 ID:F8FuyS4N
とりあえず、AS3何ぞや〜onPressやonEnterFrameを実装する
まで一通り終わったわけだけど。
こんな感じで、わかりやすかったんだろうか?

他に知りたいとことかあったら適当に頼む。
なかったら一旦終わりってことで。

145 :Now_loading...774KB:2007/05/28(月) 15:25:30 ID:ZLJ9I53E
>>144
FLEXメインの人にとっては盲点かもだけど、Flashオーサリング環境で
ステージに置いたオブジェクトは、従来の方法に似たターゲットパスを
つかってもアクセスできるのでその辺もあっても良いかも。
スクリプト派でない人は、addChildするより手で置くことが多いだろうし。

スクリプトで設置した場合はmc.addChild(child);のあとにmc.child=child;
しないとだめだけどね。

146 :hoge ◆AXUssWRNqk :2007/05/28(月) 16:42:31 ID:F8FuyS4N
>>145

あぁ、あるねその仕様。
Flash CS3でディフォルトの設定だと、ステージに myMC って名前のMCをおいた場合、
パブリッシュ時に自動的に、

public var myMC : MovieClip = 置いたMC

って宣言を追加して処理してくれるらしい。


ここら辺あまり使い込んでないので、詳しいことはいえないんだけど
MovieClipを拡張したMCをリンケージでライブラリと結びつけるとき、
リンケージ先のMCにそうやって置いた子MCがあった場合、
宣言のしかたにウンチャラかんちゃらみたいな、挙動があったはず。

俺はそこら辺メンドかったので、オフにしてた。

147 :Now_loading...774KB:2007/05/29(火) 11:42:18 ID:D9Bt/+28
asファイルのクラス内でEnterFrameの処理を書いて、
ステージでaddChildすると自動的に動くMCを作った場合、
EnterFrameの中の条件で自身をremoveChildさせたかったのですが、

ArgumentError: Error #2025: 指定した DisplayObject は呼び出し元の子でなければなりません。

とエラーが出てしまいました。
よくわからんのですがaddChildしたステージからでしか消せないのでしょうか。
また、removeChildしても表示されていないだけで動き続けてるのでしょうか。

148 :hoge ◆AXUssWRNqk :2007/05/29(火) 12:28:04 ID:lw2lHtX5
>>147

removeChildとremoveMovieClipの違いで、間違えやすいところだね。

as2のremoveMovieClipは自分を消してた。
as3のremoveChildは「自分の子供」を消す。

なので、 this.parent.removeChild( this )
みたいになるんじゃないかな。

あと今回はremoveChildしても表示リストから消えるだけなので、
どっかの変数内にMCを保存しておくと残るし、動作しつづける。

ちゃんと消したい場合は、
・イベントリスナを全部外す
・変数に自分が保持されてたらnullを代入
・removeChildで表示リストから外す

って処理が必要。
kill とか endとか言う関数作って、そこでまとめてやっちゃうといいと思う。

149 :Now_loading...774KB:2007/05/29(火) 13:36:52 ID:D9Bt/+28
>>148
public function killed() {
this.removeEventListener(Event.ENTER_FRAME,onEnter);
this.parent.removeChild(this);
}
ありがとうございます!これでいけました。

150 :Now_loading...774KB:2007/05/30(水) 13:10:23 ID:jVP9JWql
不思議なことが起きた。
for (var i:Number = 0; i<20; i++) {
var mc:MovieClip = new Untitled(400,300);
this.addChild(mc);
}
これで20個のmcができた。
cs3って名前が重複してても作成されるの?
もしくは、おれなんか勘違いしてる?

151 :Now_loading...774KB:2007/05/30(水) 13:20:46 ID:gVWo9UdZ
・・・

152 :hoge ◆AXUssWRNqk :2007/05/30(水) 13:23:53 ID:OtWtrmhk
>>150

マジレスするとそれは正しい挙動。
AS2でも同じように動く。

var mc = 〜は
ローカル変数mcに一時的に 新しい Untitledインスタンスを代入してるだけ。
new Untitle は、 new Date とかと同じように何個でも作れる。


153 :Now_loading...774KB:2007/05/30(水) 14:39:26 ID:jVP9JWql
>>152
いや釣りじゃなかったんだけど、
おれ今までずっと勘違いしてた。というか知らなかった。
var mc:MovieClip = new Untitled(400,300);
this.addChild(mc);
var mc:MovieClip = new Untitled(400,300);
this.addChild(mc);
....
こういうことが行われてた訳じゃなくて、
for1回ごとに異なるローカル変数mcをステージのどっかに作成し続けてたんだ。
勉強になった。

154 :hoge ◆AXUssWRNqk :2007/05/30(水) 15:34:14 ID:OtWtrmhk
>>153

うーんというか、そのコードでもちゃんと2つ生成されるよ。
as3のaddChildの概念が分かりにくいのかもしれない。

まず変数 mc と 親の表示リスト(children)があるわけね。

1: var mc に Untitled を作って放り込む。
mc = myUntitled 1


2: mc に入ってるUntitled を addChild する。
mc = myUntitled1
parent.表示リスト = [ myUNtitled1 ]


ここまでは予想通りだと思う。

3: var mc を初期化しなおして Untitled をまた作って代入。
ここで変数mcの中は新しい Untitled の方に入れ替わる。
けど古いUntitledは、既に表示リストの中に存在してる。
mc = myUntitled2
parent.表示リスト = [myUntitled1]

4;でまたmcをaddChildする
mc = myUntitled2
parent.表示リスト = [myUntitled1, myUntitled2]

となる。

155 :Now_loading...774KB:2007/05/30(水) 15:52:11 ID:rRoPXUvP
参照と実体を混同してる
mcの宣言位置が気持ち悪いが、
1つの参照に20個の異なる実体を一時的に入れてるだけ
addChildの問題じゃない

156 :Now_loading...774KB:2007/05/30(水) 19:52:08 ID:Vpl52PDv
なんとなくわかった。というかたぶん理解したと思う。
今はこのままなんとなくで誤魔化して色々書いてみてゆっくり完璧に理解することにする

157 :Now_loading...774KB:2007/05/30(水) 20:04:04 ID:gVWo9UdZ
>>155

158 :Now_loading...774KB:2007/05/31(木) 10:31:45 ID:FOYZ5GGG
なんだよこれalphaが0から1に変わってんじゃねーか。
2日も無駄に悩んじゃった

159 :Now_loading...774KB:2007/05/31(木) 22:45:42 ID:Qw+V9xmK
それFlexのActionScriptマニュアルに注意しろって
はっきり書いてあった気がするが

160 :Now_loading...774KB:2007/06/01(金) 12:36:26 ID:VkLSITkH
//asファイル
package {
public class tracer {
public function tracer() {
trace(parent.num);
}
}
}
//SWFファイル
var num:Number;
var hoge:???? = new tracer;
for (var i:Number = 0; i<50; i++) {
num++;
addChild(hoge);
}

クラスからswfの(ステージの?)変数を見たいクラスがあったとして
こういう場合swfにはどういうスクリプトを書けばいいのでしょうか。
上記の場合tracerをインスタンス化?して、
for内で実行しなければいけないのは解るんですが、
tracerを入れる型も解らず、また実行させる方法も思いつきません。
グラフィックやMCを表示させる訳じゃないんですがaddChildであってますでしょうか?
というか、それ以前にクラス内のtrace(parent.num)で
1119: Access of possibly undefined property parent through a reference with static type tracer.

161 :Now_loading...774KB:2007/06/01(金) 12:40:40 ID:VkLSITkH
>>160の続き(書く前に送信しちゃいました)

とエラーが出てしまいます。
クラスからステージの、もしくは他のクラスの変数を見ることはできないんでしょうか。

質問多くてすいません。よろしくお願いします。

162 :hoge ◆AXUssWRNqk :2007/06/01(金) 12:45:16 ID:WWPp5LNs
>>161
ちょっと今リアルが忙しいので昼すぎか夕方ぐらいに書く。



163 :hoge ◆AXUssWRNqk :2007/06/01(金) 15:58:18 ID:WWPp5LNs
まず最初に答えだけ書くと、こんな感じかな。
ちょっと動作テストできてなくて申し訳ないが、
多少文法ミスはあれど動くとは思う。


package{
 import flash.display.MovieClip
 public class Tracer(){
  public function Tracer( ){
  }

  public function trace( mc : MovieClip ){
   trace( mc.num )
  }
 }
}



var num : Number
var tracer : Tracer = new Tracer()
tracer.trace( mc )


たとえばこれで、Tracerクラスはtrace( mc ) で、 mcのnumを出力するようになる。

164 :hoge ◆AXUssWRNqk :2007/06/01(金) 16:04:13 ID:WWPp5LNs
クラスから外部を見るときには、外部のデータを渡してあげる必用がある。
↑の例では、Tracerクラスの関数traceでMCを渡すと、そのMCの変数numを出力するようにしてる。

・クラス名は頭を大文字に

・型はクラスメイト同じ( 厳密には違うけど今はこれでOK )

・new ってのは、設計図(クラス)を組み立てるって動作なので、
newするだけでは普通は何もおきない。

・new クラス名() って、括弧をつける。

・で設計図(クラス)から、実物(インスタンス)を作ったら、そのインスタンスを操作する。
この例では、hoge.traceって、クラスに作った関数を呼んでる。

・クラスは自分の外を知らない。だから必用ならパラメーターで渡して教えてやる必用がある。

・addChildは表示用の命令で、MovieClipやSpriteなんかにしか使えない。

そんなとこかな。
ここら辺は一問一答したほうがわかりやすいので、わからないとこ随時質問して。

165 :Now_loading...774KB:2007/06/01(金) 17:01:50 ID:VkLSITkH
とてもよくわかりました。とりあえず型はクラス名と同じにしておいて、
クラスの中のクラス名と同じ関数ってのは、
クラスをインスタンス化したときの初期化処理みたいなもので、
何度も実行するものじゃない。mc大量作成とかは除いて。
都度実行したいものがあるときはクラス内の関数なんですね。
で、クラス内の関数に必要な変数やMCなどの情報を渡す。
(だいたいあってますよね?)
本当にありがとうございました。これで計算するだけのクラスも作れそうです。

166 :Now_loading...774KB:2007/06/04(月) 21:22:21 ID:RGcVSr0Z
フォーカスが一番ややこしい気がしてきたぜ・・・

167 :Now_loading...774KB:2007/08/19(日) 02:48:02 ID:ZjJdcd8p
あげ

168 :Now_loading...774KB:2007/08/19(日) 03:03:57 ID:tPCuLUWk
さげ

169 :Now_loading...774KB:2007/08/20(月) 23:46:47 ID:hvC6Nz0n
Key.isDown(keyCode) と同様のものをAS3で書くにはどうしたらいい?

170 :hoge ◆AXUssWRNqk :2007/08/21(火) 12:01:59 ID:warR0VdX
>>169

単純にキーイベントを取得したい場合は、
stageにaddEventListenerで、KeybordEventを登録する。

stage.addEventListener(KeyboardEvent.KEY_DOWN, trapKeys);

private function trapKeys(e:KeyboardEvent) {
trace( String(e.charCode) + "/" + String(e.keyCode));
}


isDownに該当するものはないみたいだから、KeyDownとKeyUpを両方登録して、
自分でフラグ立てて管理するのがいいんじゃないかな。


171 :Now_loading...774KB:2007/08/24(金) 18:04:29 ID:ZvlHqLOz
>>170
ありがとう。
やはりそれしかないのね

172 :Now_loading...774KB:2007/08/25(土) 04:48:55 ID:dfkQI4Rc
isDownはセキュリティー上の問題があって削除されたっぽいね。
フォーカスが無くても取れたりするから危険だった。

173 :Now_loading...774KB:2007/08/30(木) 16:14:42 ID:ljrzh0lg
質問スレで回答いただいた話なのですが、
解らないことがあり質問スレで長々と解説を頼むのも気が引けますので
こちらで教えてください。

ActionScript 誰かが物凄い勢いで解答するスレ 17
http://pc11.2ch.net/test/read.cgi/swf/1187394529/143-151

上記のスレの143-151の質問者なのですが、
なんでこれだけの追加で動くんでしょうか。
クラスからみると
stage textfield
となっているが、ステージからクラスでステージのチェックをすると、
stageーtextfield
となってstageが認識できるってことですか?
いまいちわからないです。

174 :hoge ◆AXUssWRNqk :2007/08/30(木) 23:59:00 ID:0B4wXH89
AS3の特徴としてMovieClipやSpriteは、addChildで実際に表示するまで、
stage に乗っかっていない状態 = そいつのstageプロパティはnullなの。

だから一旦addChildした後で、 stage にキーイベントを追加すればOK。
ちょうど149がやってるところだね。

stageの仕様変更は、AS3の鬼門の1つだと思うのに、
どこにも説明ない話だからわかりにくいよね。


ちなみに何で最初はステージが空かっていうと、
AIRとかではマルチウィンドウとかもありえるので、ステージが1つとは限らないからです。多分。

175 :Now_loading...774KB:2007/08/31(金) 00:07:08 ID:PdJcADqq
すまん、日本語1.0でおk

176 :173:2007/08/31(金) 12:44:04 ID:hscyW3hW
>>174
ああ、意味が分かりました。
ステージでaddChildする前にすでにクラスの読み込みというか準備が終わってるから
クラスのstageはnullってことでエラーが出ると。
そのためにaddChild後にキーイベントを追加して対処ってことですか。
やっと解りました。ありがとうございます。

177 :Now_loading...774KB:2007/09/01(土) 02:22:26 ID:1RFdUzBf
AS3の本って売ってます?ソフト買ったけど、付いてないじゃん。どうやって覚えればいいの?

178 :Now_loading...774KB:2007/09/01(土) 12:07:38 ID:dc3RONPP
>>177
AS3に詳しい人達がセミナーとかやってるからお布施する


179 :Now_loading...774KB:2007/09/01(土) 14:05:43 ID:D9wE3O+u
>>177
AS3の本は既に売ってますよ。

ただ、AS3は言語を学ぶ事より、
クラス構造を憶える方が大変なので、
ヘルプを活用する方が手っ取り早いと思う。

180 :Now_loading...774KB:2007/09/01(土) 14:23:41 ID:dc3RONPP
>>179
どの本もヘルプ並のことしか書いてないんだよね

181 :hoge ◆AXUssWRNqk :2007/09/01(土) 15:51:19 ID:3eomNBW+
高校卒業程度の英語力があるなら、

Foundation ActionScript Animation: Making Things Move!
ActionScript3 CookBook
Object Oriented Actionscript 3.0
Essential ActionScript3か、 という洋書をとりあえずオススメします。

とりあえず入門なら Object Oriented Actionscript 3.0
ゲームとか作るなら Foundation ActionScript Animation: Making Things Move!
OOPやるなら Essential ActionScript3 か、 Object Oriented Actionscript 3.0


Foundation ActionScript Animation: Making Things Move! は現在、ボーンデジタルという会社で
日本語版を作成中らしいので、来年まで待てるならコレがオススメ。


182 :Now_loading...774KB:2007/09/02(日) 00:37:25 ID:gzDiuDol
しょうがないので8を覚えます。そのうちCS3も覚えれたら覚え・・ないだろな。
せっかく直前に買ってうpグレ版も手に入れたからCS3覚えようと思ったのにな。

183 :Now_loading...774KB:2007/09/02(日) 01:32:20 ID:U6wUWuWA
AS3はそういう安易な気持ちで挑戦していいもんじゃないぜ

184 :Now_loading...774KB:2007/09/02(日) 11:56:07 ID:+ICqfRbi
安易に挑戦も何も、詳しい本も付いてないもん、どうしようもねーじゃん。

185 :Now_loading...774KB:2007/09/02(日) 17:34:33 ID:Jo5TDnJh
AS1/2から始めなさい。

STEP1. AS1 or 2で、とりあえずスクリプトを書く場所と書き方を憶える
STEP2. AS2で、外部asクラスの作成方法を憶える
STEP3. 上で作ったモノをAS3に置き換える

言語は変われど、Flash上での扱い方は同じなので、
AS1/2からやりましょう。

186 :Now_loading...774KB:2007/09/02(日) 19:51:37 ID:WqsIKQdm
学生とかではじめるなら AS3 からでいいんでね?
仕事でやるなら、AS1/2 もしばらく必要かもしらんが。。。
あと >>181 のオススメ本は、英語力よりプログラムの知識のほうが重要と思ふ
難しい本は買って満足しちゃうヤツも多いから
最初は「ActionScript 3.0 入門ノート」の方がいいと思うがなぁ

187 :Now_loading...774KB:2007/09/02(日) 22:26:58 ID:U6wUWuWA
>>186
その本は、ある程度プログラミングを知っている人向けだよね。>>177
どの程度の技量を持っているか次第だけど、AS2から入った方いいよ。

188 :Now_loading...774KB:2007/09/02(日) 22:32:38 ID:1X67OMGy
addEventListenerに慣れたら1,2書きたくない

189 :hoge ◆AXUssWRNqk :2007/09/02(日) 22:58:18 ID:UPBLxSJy
>>186

そう思います。
もし、>>177がまったくプログラムがわからない場合は、
下みたいな順路がいいんじゃないかと思う。


教えてアクションスクリプト

なんかFlashでゲーム作る本適当に

Essential ActionScript2 日本語版

結城さんのJAVAのOOPの本

AS3


すでにAS2できるなら

説明いっぱいあるの平気なら「ActionScript 3.0 入門ノート」、
とりあえずサンプルとコードで覚える派なら、タイトル忘れたけどAS3でゲーム作る本がいいと思う。



190 :Now_loading...774KB:2007/09/02(日) 23:22:29 ID:Jo5TDnJh
FlashLiteも暫くはPlayer7系列だし、
AS1/2で「Flashでのプログラミング手法」を学ぶのもいいと思うんだが。

ラフに作りながらのトライ&エラーがしやすいので、
初心者でも挫折しにくいと思うしさ。

191 :Now_loading...774KB:2007/09/02(日) 23:28:05 ID:fvN+nxjI
>>189
> タイトル忘れたけどAS3でゲーム作る本
って↓のこと?
ActionScript 3.0 ゲームプログラミングブック
ttp://book.mycom.co.jp/book/4-8399-2193-8/4-8399-2193-8.shtml

↑の本の著者のサイトのActionScript 3.0メモ
ttp://www.saturn.dti.ne.jp/~npaka/flash/as30/index.html
を見れば基本的なことは分かるんじゃないかと思う。

192 :Now_loading...774KB:2007/09/03(月) 12:57:57 ID:TzhDnQq0
177です。実は全くの初心者です。色々ありがとうございます。参考にさせて頂きます。
そんなにAS2とAS3って変わってるんですか?とりあえずAS2から気合入れて覚えていこう
という気になってますけど、いずれAS3が標準になるんだったらAS3も覚えないといけないですね。

193 :Now_loading...774KB:2007/09/03(月) 22:11:07 ID:xQtJM32N
比較的初心者向けとして、gihyo.jpにこんな連載があります。

「ActionScript 3.0で始めるオブジェクト指向スクリプティング」
ttp://gihyo.jp/dev/serial/01/as3

194 :Now_loading...774KB:2007/09/04(火) 00:07:00 ID:hEoupq0w
>>181の「Making Things Move!」はAS2版のもあるので、
AS2覚えてからAS3に移行したい人は、この本のAS2版から
始めるのもいいのでは?
ただし、この本は英語以上に数学(三角関数とか)の知識が
必要だと思う。

195 :Now_loading...774KB:2007/09/04(火) 19:33:10 ID:+nnLZpuq
そもそも、AS3でやりたい事があるのかい?

趣味の為に憶えたいのであれば、
AS1/2から入る方が楽で理解しやすいと思うのだが。
AS3じゃ携帯用FLASH作れないし。

196 :Now_loading...774KB:2007/09/06(木) 01:24:55 ID:v1x5Mbqp
バイナリが扱える
おかげで画像の保存が楽になった〜

197 :Now_loading...774KB:2007/09/10(月) 01:46:21 ID:3N5P+Dxs
AS3で、読み込んだ外部swfの中のムービークリップをいじる場合、どう記述したら良いのでしょうか?

Loaderで読み込んで、外部swfを表示するとこまでは出来たのですが、
大元のswfに、読み込んだswfの中のムービークリップをコントロールするボタンを配置して、
読み込んだswfの中のムービークリップをいじりたいのですが、pathもどうなっているのかよく判らない始末ですorz

例えば
大元のswfに配置したボタンが push_btn
読み込んだswfの中のrootに置いてあるムービークリップが a_mc
だった場合
push_btn.addEventListener(MouseEvent.CLICK, push);
function push(event:MouseEvent):void {
//ここにどう書けば良いのでしょうか?
}

もしくは、きちんとしたアクセス方法をご存じの方ヒントだけでも教えていただけないでしょうか。

198 :197:2007/09/10(月) 11:14:09 ID:3N5P+Dxs
自己解決しました。
addChild(loader);として読み込んだ場合、loader.content.a_mc.gotoAndPlay("start");等と
Loader.contentプロパティというのを付けることでアクセス可能になりました。

199 :Now_loading...774KB:2007/09/11(火) 16:26:35 ID:0YZcPph5
TextInputやTextAreaのプロパティでTextFieldがあるんですけど、
こいつに文字色設定とかしても、色変わってくれません。
どうすれば内部テキストの文字色かえられたりするか教えてください。

200 :Now_loading...774KB:2007/09/11(火) 19:41:00 ID:0YZcPph5
199です。追加でこれも。

あるムービークリップをつくりそこにTextInputを置きました。
外部asでクラス定義してそのムービークリップにリンケージします。
で、newで生成します。
ここで問題が発生しました。コンストラクタ内でTextInputに文字を
設定しても表示されません。

これはどうしてなんでしょうか?仕様でしょうか。
あとScrollPaneとかも同様です。

もしかして静的配置したコンポーネントってコンストラクタの段階では
まだアクセスが不能?

201 :Now_loading...774KB:2007/09/11(火) 22:58:41 ID:aHZEoTsL
>>199
tiはTextInputインスタンス

var tf:TextFormat = new TextFormat();
tf.color = 0xff9900;
ti.text = "test";
ti.setStyle("textFormat",tf);


202 :Now_loading...774KB:2007/09/12(水) 01:04:47 ID:HAXb3ALb
ちょい質問があります。

//メインタイムライン フレーム1
bullet1-1 = new Bullet1(ang,myX,myY);
addChild(bullet1-1);

//クラス Bullet1
(コンストラクタでENTER_FRAMEリスナーonEnterを登録。life = 60)
function onEnter(event:Event)
{
life --;
if(life == 0)
{
die();
}
}
function die()
{
removeEventListener(Event.ENTER_FRAME,onEnter);
this.parent.removeChild(this);
}


この状態で、dieが呼ばれたその後に絶対
----------------
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at Bullet1/::onEnter()
----------------
このエラーが1回だけ出るんだが、リスナー関係で馬鹿やってるのかな・・・?
ちゃんとリスナー消してからremoveChildしてるはずなんだけどなぁ・・・

誰か助けてください><

203 :Now_loading...774KB:2007/09/12(水) 05:20:26 ID:HAXb3ALb
if(life == 0)
{
die();
return;
}

すいません、これで表示されなくなりました。
お騒がせしました・・・。

204 :Now_loading...774KB:2007/09/13(木) 21:38:11 ID:JOD8mkpb
何故か質問スレになってる不思議

205 :Now_loading...774KB:2007/09/14(金) 12:02:16 ID:oG8owT9S
CD-ROMでのプロジェクタ案件があった。
画像処理がメインだったので、Playerバージョン関係ないから初のAS3.0でやろうとしていたが、
途中で訳分からなくなったのでやめちった。



206 :Now_loading...774KB:2007/09/24(月) 15:33:00 ID:ErrWPt0u
FlexSDKでflパッケージ使いたいのですが、うまく使えないです。
適当なスレ見つからなかったのでここで質問します。
やったこと書きます。

・Flex2SDKインストールしました。
・日本語パックいれました。
・frameworks/libs/Fl_cpackage.swc を入れました。
・実行環境は Flash9,0,47,0(デバッグできるやつ)

コンパイルは通ります。
実行時エラーになります。
--- Error #1009: null のオブジェクト参照のプロパティま…

package{
  import fl.controls.TextArea;
  import flash.display.Sprite;
  public class Test01 extends Sprite{
    public var ta:TextArea;
    public function Test01() {
      ta = new TextArea();
      ta.text = "kore ha test"
      addChild(ta);
}}}

TextAreaの代わりにTextInputにすると実行時エラーは出ないが何も表示されない。。。
TextAreaの代わりにTextFieldにするとうまく表示できる。。。

全部スクリプトで書くとダメなんでしょうか。
だ、だれか助け


207 :Now_loading...774KB:2007/09/25(火) 00:51:28 ID:5e/Z7DqB
みんなAS3.0の開発環境ってどうしてるべ?

今俺はアニメーションを入れたいからFlash9で書き出しているけど
Flashのエディタは酷いから、FDT3を入れて使ってみようとしている。
だけど、FDT3だとmxパッケージもflパッケージも使えないっぽいんだけど
どうしたもんかな、という感じ。

208 :Now_loading...774KB:2007/09/28(金) 15:21:29 ID:KELkIc6t
meadowとかxyzzyでゴリゴリ記述

209 :Now_loading...774KB:2007/10/05(金) 14:59:37 ID:60k1tV/c
良書「Foundation ActionScript 3 Animation: Making Things Move!」
の日本語訳の本思ったより早く出るみたいだね
http://www.gogo3d.com/products/actionscript3/index.html

ボーンデジタルならではの超特価になっていますがw

210 :Now_loading...774KB:2007/10/05(金) 19:39:48 ID:n7i51Oiq
>>209
高すぎるwwwww凄く欲しいけど…

211 :Now_loading...774KB:2007/10/14(日) 13:49:19 ID:KjTTguqh
>>207
エディタか、FlexBuilderじゃね?

212 :Now_loading...774KB:2007/10/14(日) 20:41:07 ID:ZfJ/pRtz
>>209
> Chapter 17 陰面消去と3D照明

↑ここらへん、ちょっと興味深い

213 :Now_loading...774KB:2007/10/15(月) 22:02:32 ID:tfL4/3lB
Actionscript 3.0 Cookbook の邦訳はまだか?

214 :Now_loading...774KB:2007/10/15(月) 22:11:20 ID:cXR/JMwr
>>212
えぇぇぇ、そんなのは1980年〜90年代の技術ではないか。

215 :Now_loading...774KB:2007/10/15(月) 22:36:07 ID:vN0kcqxQ
>>214 大学の頃ONYXでプログラミングしてたな。

216 :Now_loading...774KB:2007/10/19(金) 21:06:18 ID:rVzNGLak
FLASHから離れて2年位経つんだけど久々にみたらなんだこれ
変えるにも程があるだろ
だからあどべとくっ付くのはいやだったんだよ
まあ覚えりゃいいんだけどめんどくせーっつうの

217 :Now_loading...774KB:2007/10/19(金) 23:31:22 ID:EXfWcKY4
しかしまぁ、FLASH単体じゃなくてCreativeSuiteとして買うと
便利だとは思うんで、Adobeと合体したのはよかったかもしれん。

218 :Now_loading...774KB:2007/10/20(土) 03:53:11 ID:6Fgbw5Ji
フォトショ や イラレ との連携が楽
オレも合体したのには賛成

219 :Now_loading...774KB:2007/10/20(土) 05:48:50 ID:YdI9/dkF
あんたと合体してあげてもいいんだから感謝しなさい!!

220 :Now_loading...774KB:2007/10/20(土) 08:38:06 ID:rVkpVsmX
一万年と〜二千年前からあ〜いして〜る〜♪

221 :Now_loading...774KB:2007/10/20(土) 18:06:42 ID:0e4UTFqc
でもAS3はとっつきにくいからAS2のまま連携できてくれればよかった
覚える時間がもったいない

222 :Now_loading...774KB:2007/10/21(日) 18:42:46 ID:MZ6bCI92
AS3もはやほとんどJavaじゃん

223 :Now_loading...774KB:2007/10/21(日) 18:51:17 ID:mIJHy5W4
>>221はAS2すら理解できてないに3000ウォン。

224 :Now_loading...774KB:2007/10/22(月) 14:51:42 ID:J3FeIoLe
AS2もままならない新規参入者はAS3からはじめるべき?

225 :Now_loading...774KB:2007/10/22(月) 16:54:36 ID:r+t8WtHw
作りたいものによる。
音楽にアニメのせるぐらいなら AS1 か AS2で十分。
バリバリ動くゲームやサイト作りたければ、将来的にはAS3やっといたほうがいいと思う。

ただプログラム初心者がAS3やると死亡すると思うので、AS2でいいんじゃないかな?

226 :Now_loading...774KB:2007/10/22(月) 17:29:08 ID:vBvRvJHb
でも面倒は多いけどAS3のほうが難しいってわけでもないと思うんだ。
Wiiやらケータイやらをターゲットに入れるんならAS3じゃ駄目だけど。

227 :Now_loading...774KB:2007/10/22(月) 17:37:37 ID:7W+AbyFN
flashLite3.0はAS2だからな

228 :Now_loading...774KB:2007/10/22(月) 21:34:03 ID:oRc7eLNP
面倒がイヤだからFLASH始めたのにな

229 :Now_loading...774KB:2007/10/22(月) 22:45:33 ID:vBvRvJHb
面倒がいやなら創作なんてやめたほうが幸せ

230 :Now_loading...774KB:2007/10/23(火) 00:35:00 ID:WIulec7w
商用で長期メンテが求められるような開発とか、
大人数での連携が必要な開発では、AS3のメリットは大きいね。

それ以外ではAS1/2のラフさ、簡単さ、単純さのメリットの方が大きいと思うんだ。

231 :224:2007/10/25(木) 00:45:05 ID:KgbHXGW/
今大学一年の学生で将来的にWeb業界を志望してるんだけど、
最近のFlash周辺の技術の高度化にしり込みしてしまってる。

この先AS3とAS2とで住み分けができる訳もないだろうし。
>>230の言うように最終的にはAS3で製作することを求められるんだろうけど、
現段階でAS3というのはとっつきが悪くて手が出ない感じ。

AS2である程度勉強してAS3へってのを考えてるけど
正直ある程度ってどの程度よって話。

どうなんだろう?
今のうちに無理してでもAS3に入るべき?
それともAS2である程度勉強してAS3へってのでいいの?
もしくはそれ以外の進行方法があればどうか教えてください。

長文スマソ


232 :Now_loading...774KB:2007/10/25(木) 01:03:13 ID:F73hvbMP
>>231 プログラムの基本が分かってりゃ違いなんてたいしたことないし、
ASができればJava、Javascript、PHPなら改造くらい出来るようになる。
PerlやASPでも基本文法を確認すれば考え方は同じだからこれも普通に使える。

大学1年ってことなら、4年後のASのバージョンなんてどうなってるかわからないし、
大穴で silverlightがシェアとってるかもしれないし。

用は基本。C/C++をマスターすれば何でも出来る。

233 :Now_loading...774KB:2007/10/25(木) 01:43:53 ID:SN5ZQWTW
>>231
毎日が勉強三昧の業界に行くのに
習得する言語を1つだけ選んでる時点でカス。
全部やれ

234 :Now_loading...774KB:2007/10/25(木) 02:37:58 ID:6yVvSMIH
オレはFlashとかが好きでやってるから、覚えることは苦にならないな
むしろ、分からない事があると調べずにはいられない
どれから手をつければいいとか下らない質問してる暇があったら、気になるとこから手をつければいいのに

235 :Now_loading...774KB:2007/10/25(木) 04:08:06 ID:/pmPIcGE
俺が言えることはただひとつ
「Web業界なんてやめとけ」

236 :Now_loading...774KB:2007/10/25(木) 04:52:16 ID:okiGzzI4
>とっつきが悪くて手が出ない

とっつきが悪いくらいで知らない技術に手が出ない時点でヘタレ
ドラゴンボールでたとえればヤムチャ
ピッコロとかフリーザの相手にまるでならないのがオチ

237 :231:2007/10/25(木) 10:43:33 ID:7B7qaW8b
>>232>>233>>234>>236
了解。
考えなおす。

AS3、JAVAあたりから手をつけていくってことで。


>>235
これよく言われるけど具体的にどうして?

238 :231:2007/10/25(木) 10:44:12 ID:7B7qaW8b
sage忘れたスマソ。

239 :Now_loading...774KB:2007/10/25(木) 13:48:47 ID:CmVGTFcM
上の人らはAS2もAS3もどっちもやれって言ってるんじゃないの?

240 :Now_loading...774KB:2007/10/25(木) 17:00:20 ID:KAUMNhBw
質問させて下さい。
テキストエフェクトを選ぶと変数名を指定する事が出来ないのですが、
変数にして、テキストエフェクトする方法ってありますか?

241 :Now_loading...774KB:2007/10/25(木) 17:03:23 ID:KAUMNhBw
240です。場所間違えたみたいです。失礼しました。

242 :Now_loading...774KB:2007/10/25(木) 19:35:42 ID:1HggB3QW
>>239
ん〜そうなのか?
AS2とAS3を両方同時に学習していくメリットってある?

243 :Now_loading...774KB:2007/10/25(木) 20:58:10 ID:whJwIs1L
>242
どっちもヤレって言ってる人は、
書式が違う部分は知っておけって事を言ってるんでしょ
結局、そのときの案件で使ってるほうを
一時的に得意になるだけじゃん
考え方は、JAVAでもAS2でも3でも学べるし

244 :Now_loading...774KB:2007/10/25(木) 21:14:27 ID:U5cLI07c
RIA開発系をやりたいなら「FlexBuilder2 + AS3」
デザイン系や携帯系をやりたいなら「FlashCS3 + AS2」を学んでから、AS3をやれ。
とにかく最新技術触りたいギークは「自分で考えろ」

現状でもFlash7以下の仕事は腐るほどある。

245 :231=242:2007/10/25(木) 22:06:33 ID:1HggB3QW
>>243>>244
なるほど、、、。
ということはAS2が完全に淘汰されるのはかなり先、
もしくはそんなことはないのか?

ほぼ間違いなくデザイン系だからCS3でAS2&3だな。

場所にも寄るだろうけど、
新卒のデザイナーでWeb系の制作会社入る場合、
最低限求められるスキル、レベルってだいたいどんな感じなんでしょ?


246 :Now_loading...774KB:2007/10/25(木) 22:22:37 ID:/pmPIcGE
>>245
新人に必要なスキル
言われたことを文句言わずにやる。
毎日夜遅くまで仕事でも泣かない。
Flashをさわったことがある。

247 :Now_loading...774KB:2007/10/25(木) 22:28:49 ID:lO/7lvVR
>>246
人とコミュニケーションが取れる。
社会性がある。
一般的な常識を持っている。

248 :Now_loading...774KB:2007/10/25(木) 22:30:14 ID:F73hvbMP
大学3年生の頃にWebが登場した俺には理解できない話だな。

249 :Now_loading...774KB:2007/10/25(木) 22:44:44 ID:FGlMJXFQ
>>245
いま大学一年生なんでしょ?だったら勉強する時間はいっぱいあるんだから
さっさと自分が作りたいものを作り始めなよ。
自分のために使える時間が山ほどあるのにうだうだ迷ってるだけじゃ、
もったいないぞ。

250 :Now_loading...774KB:2007/10/25(木) 23:02:17 ID:whJwIs1L
>245
1年ならweb系じゃなくて生粋のデザイン事務所目指せ
webに限定すると損するよ
上流工程にいるデザはweb限定なんてしない
電通いけ電通w

251 :Now_loading...774KB:2007/10/26(金) 02:01:16 ID:EPldB6Xz
デザイナーなら博のがいいんじゃね

252 :245:2007/10/26(金) 02:28:58 ID:xLGTS7+W
>>246>>247
あ、技術的なことは二の次なんすね。
その辺のスキルも磨きます。

>>249
一応今まではAS2を勉強してて
ちょっと最近の動向みて迷ったんで質問してみた。
おっしゃるとおりです。

>>250>>251
教授に相談したら同じような事言われた。
yugop世代なのでやはりWebがやりたいってのがある。
広告系の学校なので学校で広告、デザインを、
で、独学でWebを勉強してる。

Webに絞る事によるデメリットってなんでしょ?
当然目標として電博は視野に入れてます。

253 :Now_loading...774KB:2007/10/26(金) 02:53:31 ID:ZZOKQYYB
Web系の仕事なんて最底辺ですよ。
なんかカッコイイ仕事とか夢見てるんなら醒めるチャンスだ。
まぁ最底辺からトップを目指すのも人生かもな。

254 :Now_loading...774KB:2007/10/26(金) 03:02:29 ID:zrPSOXsc
AS2やってるんならそれで自分なりに満足できるレベルのものを
作れるようになるまでやった方がいいと思うけどね。

AS3覚えたからって突然すごいことができるようにはならないし、
AS2のクラスベースでしっかりコーディングできるようになっていれば
移行は比較的簡単にできる。

255 :Now_loading...774KB:2007/10/26(金) 04:11:27 ID:E29fmVGk
>>245

確実にいいとこ滑り込みたいなら、
FlashなりASなりの勉強ブログを書くことをオススメする。
Web系はブログがそのままポートフォリオになるし、
勉強のモチベーションが保てるし。

AS3でコーディングできるデザを目指すなら、
processingとか経由で勉強するのもいいと思う。



256 :Now_loading...774KB:2007/10/26(金) 19:50:18 ID:w0bxAUjJ
現状RIA系以外でAS3を実用しているのって、かなり希少だぜ?
(メリットより生産性の低下&開発コストUPのデメリットが大きすぎる)

今後AS2との置き換えが進むかどうかは、
FlashPlayer側の進化にかかってるんじゃなかろうか?

少なくともFlashPlayer9程度の機能差なら、
AS2で十分だし、携帯系も暫くはAS2が主流だろう。

一部のAS職人が色々実験して、未来を走っているけど、
別に「習得必須科目」でも無いので、惑わされないようにね。


地道にFlash+AS1/2の勉強をして置く方が、
デザイナとしての未来はあるかと思いますよ。


257 :Now_loading...774KB:2007/10/26(金) 20:27:27 ID:BZWolAF1
確かに商用の場合、現状で仕様が9対応ってことはほとんどないからな。

258 :Now_loading...774KB:2007/10/27(土) 01:16:32 ID:jNqamwk7
マジか
AS3のが書きやすいんだけど

259 :Now_loading...774KB:2007/10/27(土) 01:38:02 ID:7RhKx9wu
AS3向きの案件か、慣れてるだけだろ

260 :245:2007/10/27(土) 03:54:37 ID:AkEHsuxh
>>253
そんなヒドイんすか?
チラホラこんな話を聞くけどどこの業界でも言われてるような範囲のことじゃないの?
クリエイティブ系の仕事は少なからずそういう面はあると思ってんだけどWebは特にって事?

>>255
勉強ブログはよさそう。
早速はじめてみる。

やっぱりProcessingは触ってみるべき?
難易度的にどうなんでしょ?
AS3 > Processing > AS2な感じ?

>>256
実際P3DとかByteArrayとかのサンプル見て萎えてた。
たしかに習得必須科目ではないと考えると少し冷静になれた。

やっぱり>>254のおっしゃるとおり段階を追って徐々にAS3へって方がいいかも。



なんかこんな具体的に相談乗ってもらえると思ってなかったので感激してます。


261 :Now_loading...774KB:2007/10/27(土) 09:27:10 ID:3Up1fNus
横から補足説明させてもらうと、この業界は変化が早い。
そりゃいまはFLASHでAS2だけれど、来年末にはMSのSilverLightが
主流になっているかもしれない。なので、
今すぐ短期間で身につける もしくは 共通項となる事を中心に勉強
するのがいいと思う。

262 :Now_loading...774KB:2007/10/27(土) 09:48:28 ID:A1SFbem2
>>261
SilverLightは無いだろww


263 :Now_loading...774KB:2007/10/27(土) 13:14:52 ID:/RvQty7p
SilverLightは当分ないwwwww

けどAS2でもAS3でも、クラスとかOOPの概念はある程度勉強したほうがいいと思う。
そこら辺理解すれば言語仕様覚えるだけで他の言語への引越しできるし。

>>260 はプログラミング言語覚えるっていよりも、
コードでキレイなビジュアルや気持ちいい動きを作ることに集中したほうがいいんじゃないかな。

processingは起動して1分でビジュアル部分に着手できるのがオススメ。
AS3は思うような絵を描くまでにスゴイ時間かかるから、
デザ系が一番最初にAS3に突入するとまず死ぬんじゃないかな。

264 :Now_loading...774KB:2007/10/27(土) 16:00:57 ID:LyIvPnPI
>>263
激しく同意

AS3はまだ駆け出しだから情報も少ないし、Java辺りから手をつけたほうがいいかも
AS2はオブジェクト指向が中途半端だから暗黒面に陥ると危ない

265 :Now_loading...774KB:2007/10/27(土) 19:55:09 ID:XSMuSSJK
>>264
AS2が仕様の暗黒面なら、AS3は実装の暗黒面だぜ

AS2を使いこなすにはベースとなるAS1も理解しなければならない
AS3を使いこなすにはメモリ管理やタイムラインの挙動を把握しなければならない
俺の感覚だとどっちもどっちだ

まあプログラミングの基本を覚える程度ならどっちでもいいんじゃね
どっちみちWeb系に進むならいずれはAjaxというダークマターの塊を通るだろうし

266 :Now_loading...774KB:2007/10/27(土) 21:34:56 ID:62c1uvTA
AS2.0ってオーサリング以外にAS1.0となんの違いがあるの?

267 :Now_loading...774KB:2007/10/27(土) 22:06:47 ID:V0zGtuGT
なんにしろ学生のうちにFlexBuilderを無料でゲットしておくといいと思うよ

http://www.itmedia.co.jp/news/articles/0710/25/news016.html



268 :Now_loading...774KB:2007/10/28(日) 18:27:00 ID:pAQ6NP+x
Flash CS3 を使ってActionScript3.0 を書いているんですが、外部クラス(*.as)を作る際、flash.events.MouseEventが急に呼び出せなくなりました。
原因がわかる方、教えていだければ非常に助かります。

269 :Now_loading...774KB:2007/10/29(月) 00:36:08 ID:FBOJuiif
>268
import文が入っていないとか

270 :Now_loading...774KB:2007/10/29(月) 01:23:41 ID:OevnwT0u
>>265
ダークマターの表現にワロタ
>>266
ぐぐった方が早いじぇ

271 :Now_loading...774KB:2007/11/16(金) 10:32:14 ID:pdBbk3nW
アンダーバーってださくね?

272 :Now_loading...774KB:2007/11/17(土) 00:54:54 ID:VzM+PIDd
プレステの方がおもしれーよなー!!

273 :Now_loading...774KB:2007/11/17(土) 01:09:23 ID:FaZY5Ynw
ドリキャスwww

274 :Now_loading...774KB:2007/11/18(日) 14:22:06 ID:0ruxM8N/
perlプログラマだけどAS3ってクラス設計(アクセサ作製)意識しながらやるperlに激似なので
親和性高ス。

おもろいんだけど
デザインの基本がわかんにゃいというダークサイドから誰かきますたよっと。

275 :274:2007/11/18(日) 14:31:33 ID:0ruxM8N/
ごめん誇大表現すぐるな。
だからといってみんなperlに走っちゃだめだよ。
考え方ナ。考え方。

276 :Now_loading...774KB:2007/11/18(日) 14:41:17 ID:e7LIzpYf
てことは、perlプログラマはjavaもできるのか?

277 :Now_loading...774KB:2007/11/18(日) 15:12:28 ID:oJn1j/J1
ダイナミッククラスはperlっぽい気もする。
JavaScriptっぽいというか。

Flexだとほとんどstrictクラスで扱うから
どうしてもJavaっぽくなるかな。


278 :Now_loading...774KB:2007/11/18(日) 15:26:58 ID:0ruxM8N/
>>276
やっぱすみわけがあるからみんなってわけじゃないと思うが
基本perl使ってるやつは多言語使いの経歴が多いし
(Lisp使いや、特にOO志向とされる、ruby使いはもっとだと思うが)
名前空間やデータ構造を常に意識してるのでJavaもいけるんじゃね?

Perl6に移行するともっと、OO志向になるっぽいし。


Lisp使いがJavaとか果てしなく嫌うと思うけどwww。
あんま想像できないな。LisperがJavaとか。
一体どうしたんだYO!!!。と声を掛けたくなる。

すれ違いスマソ。

279 :Now_loading...774KB:2007/11/18(日) 15:37:14 ID:e7LIzpYf
>>278
なるほど、ありがと

280 :Now_loading...774KB:2007/11/18(日) 16:45:20 ID:sbAGbjHQ
基本が分かってりゃ、リファレンス目を通せばどんな言語でも修正くらいならすぐ出来るよ。

281 :Now_loading...774KB:2007/11/20(火) 14:56:16 ID:qtP2RpJF
>>274

デザインはそれなりに学問として体系化してるから、
ロジックを学べば、アーティスティックなものはともかく普通にカッコイイものは作れるよ。

むしろプログラマとデザインは親和性が高いと思う今日この頃。

282 :Now_loading...774KB:2007/11/30(金) 09:44:26 ID:6naYsN7Y
AS3楽しい〜Javaあがりの自分にはぴったしです。
ゲーム作って遊んでます。

でも、普通にFlashをAS1〜2環境で作ってた人が
これを身に着けるって至難の業だわ。
スクリプトとは名ばかりのプログラミング言語だし。

283 :Now_loading...774KB:2007/11/30(金) 09:59:00 ID:snqgOkEV
AS2上がりだけどAS3は感動したよ
オブジェクト指向にもいろいろ技法があって名前までついてるなんてw
格闘ゲーのコンボつくってるみたいで楽しい
でも難しいね・・・

284 :Now_loading...774KB:2007/12/02(日) 23:27:52 ID:4PQ3HTaU
今までAS毛嫌いして参考書買ったまま放置してたんだ。
でも、学校でC,JAVAと習ってから参考書見直したらすらすら頭に入ってきたの。
これは面白そう。
AS3始めてみるかな。

@情報系学生



285 :Now_loading...774KB:2007/12/02(日) 23:29:13 ID:irHzaUce
JAVA続けたほうが金になるんじゃん

286 :Now_loading...774KB:2007/12/02(日) 23:49:57 ID:AurF++hG
>>285
最近はそうでもなくなってきてないか?

287 :Now_loading...774KB:2007/12/03(月) 18:12:33 ID:zI364SjY
金よりか楽しめればいいと思ってます

288 :Now_loading...774KB:2007/12/05(水) 21:42:19 ID:vRmPqJEB
AS3.0って、ガリガリにロジカルに組まなくても、既存のAS2とトウィーンで組まれたサイトを
3.0に組み直すだけでも速度改善するかな?



289 :Now_loading...774KB:2007/12/05(水) 21:47:16 ID:yMWXi5/r
>>288
AS2が原因で遅くなってたところはな。

290 :Now_loading...774KB:2007/12/05(水) 22:18:59 ID:vRmPqJEB
>>289
たといば?


291 :Now_loading...774KB:2007/12/05(水) 22:59:58 ID:yMWXi5/r
>>290
逆にいまなにが遅いと感じられているんだい?

292 :Now_loading...774KB:2007/12/22(土) 20:47:56 ID:FQzdTXdi
3.0を始めたばかりですがFLASHCS3等持ってなく、今の所flex2SDK&FlashDevelopでなんとか3.0を扱う環境はできました
そしてPapervision3Dを入れてみようと思いPapervision3D_1_5.zipは手に入れたのですが・・・
このファイルをどう扱えば良いのでしょうか、ご存知の方おられましたらご教授下さい

293 :Now_loading...774KB:2007/12/22(土) 21:30:37 ID:s5PO/nXE
&