トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     on(release)がなくなる!?
投稿するにはまず登録を

| 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
森 巧尚
Åê¹ÆNo.27073
投稿日時: 2006-7-19 17:10
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
on(release)がなくなる!?
今のActionScript 3.0では、on(release)やonReleaseが使えなくなります。

つまり、「これからはボタンにスクリプトが書けなくなってしまう」ということです。

今までみたいに、ボタンを作って
on (release) {
    gotoAndStop(10);
}

はい、ジャンプ。なんてことができなくなるんです。
これは困りませんか?

こういう場合、これからは、ボタンにはインスタンス名をつけて、フレームとか外部ファイルとか、別の場所にaddEventListener(書き間違いを修正しました)を使ったスクリプトを記述します。

next_btn.addEventListener(MouseEvent.CLICK, clickFunc);
function clickFunc(event:Event):void {
    gotoAndStop(10);
}

言語として、よりプログラマー向けに整理されてプログラマーが使いやすくなったり、処理スピードが速くなったりすることは、いいことだとは思います。

ただ、「ボタンを作ってそれを押したらジャンプ」なんていう、今までずーっと当たり前にできてきていたことが「できなくなる」のは非常に困ると思うんですね。

Adobeにしてみれば、「ボタンのようにあちこちにスクリプトが書かれるのが嫌いで、一個所にまとめて書きたいって人ばっかりだよ」、「onがなくなって困る人なんているの?」ってことでこんなことになってるんだろうと思います。

でも、そのFlashを開発してる人ってそもそもバリバリなプログラマーだからそういう発想になるわけで、そうじゃない普通の「絵を描いてちょっとだけ動かしてみる」ってことをやってたユーザーたちがバッサリ切り捨てられてしまうということに気がついてないんじゃないかと思います。

スクリプトをあちこちに書きたくない人は、自己責任でそのように気をつけて書けばいいだけで(実際書けるわけだし)、それを他のFlashユーザー全員に強制することはないんじゃないかと思います。

ただし、現在のFlash 9はパブリックアルファ版で仕様が確定しているわけではありません。
Adobeとしても、こういう仕様に変更して困る人がいるだろうか、という調査も兼ねての公開なわけですから、困るところは困ると言わないといけないと思うのです。

と、僕は思うのですが、みなさんは、on(release)がなくなったら困りませんか???


----------------
森 巧尚
http://www.ymori.com

まつむら まきお
Åê¹ÆNo.27086
投稿日時: 2006-7-19 21:00
マスター
居住地: なにわ
投稿: 633
使用環境:
FlashCS5
lion
:Win7
and Beer
Re: on(release)がなくなる!?
まつむらですー

引用:
on(release)がなくなったら困りませんか???


初心者、ライトユーザーにはこの上なく不便だと思います。

ボタンに直接書く方法は、たしかにボタンが増えてくると複雑になっちゃう反面、「それぞれの機能が画面(ステージ)上で目に見えている」ことが利点だと思います。つまりタイムラインで考える分にはわかりやすいんですよね。
現状のFlashだと、インスタンス名って、そのインスタンスを選択しないとわからないじゃないですか。ボタンに書かない方式になってしまうと、目に見えるステージ上のオブジェクトと、インスタンス名を結びつける作業をアタマの中でやらなくちゃいけないわけで、目に見えるものしか信じない(笑)グラフィック系の人間にはかえってまどろっこしく感じられますねぇ。

プログラマにとって効率的になるのはいいと思うのですが、従来のやり方を切り捨てるのはどうかと思いますね。
とはいえ、今のAS1、2がベストだと思っているわけでもなく、初心者やグラフィック系ユーザでも使えるインターフェイス、たとえばボタンを直接ドラッグして指定したり、機能をアイコンで選んだりして、コードなんか1行も理解できなくてもスゲーものがガンガン作れる、ってことならコードはどーでもいいんですが(本来そういうことを考えてビヘイビア実装されているんでしょうけど、あれじゃあねぇ.....(笑))。


----------------
まつむらまきお
http://www.makion.net

るじ
Åê¹ÆNo.27089
投稿日時: 2006-7-19 21:46
Bak@Fla名人
居住地: 神戸
投稿: 13
使用環境:
Mac OSX 10.5
Safari 3
Flash CS3
Re: on(release)がなくなる!?
きょうの、まつむらさんとかさいさんの、デジクリ読んで、
なんですとー!!と思いましたですよ。
こまりますよー。こまるこまるとさけべば、こまらなくなる?


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

野中文雄
Åê¹ÆNo.27092
投稿日時: 2006-7-19 22:46
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: on(release)がなくなる!?
addEventListener()です。ま、それはおいといて。
引用:
森 巧尚さんは書きました:
こういう場合、これからは、ボタンにはインスタンス名をつけて、フレームとか外部ファイルとか、別の場所にattachEventListenerを使ったスクリプトを記述します。

自分ですべてスクリプト書くなら、個人的にはインスタンスには書かないでしょうし、困りません。でも、チームで作業をする場合には、いろいろな分業があるわけです。それをあまりに限定してしまうことには、私も賛成しかねます。

従来のon()イベントハンドラアクションとは別に、ActionScript 2.0にはコンポーネントのon()ハンドラというものがあります。ButtonやMovieClipアクションのon()ハンドラとは異なったイベント(on (click)とかon (change)とか)を指定します。



これは、ActionScript 2.0クラス定義の中にその設定をすることにより、実際にはイベントリスナーを使った処理なのに、ユーザーからの見かけ上、馴染みのあるon()ハンドラが記述できるというものです。こういう仕掛けは、ActionScript 3.0でもぜひ引継いでほしいものです。

実際仕事でも、コンポーネントあるいはMovieClip+α的なパーツを提供して、それを使うのはデザイナーの方だという場合もあります。on()ハンドラは使えるけどスクリプトにはそれほど詳しくないという人が、そのパーツにフレーム移動の処理を加えるだけのためにイベントリスナーを使わなければならないというのは、やはり不便でしょう。

このActionScript 2.0の仕掛けを少し拡張すれば、ユーザーがインスタンスにon()ハンドラで設定した処理を、Flashが内部的にイベントリスナーで扱うということは、実装としてそれほど難しいものとは思えません。

あるいは別の見方をして、[プロパティ]インスペクタの定型的な設定より少し高度な、あるいはカスタマイズされた設定を、on()ハンドラの形式でユーザー定義できるようにすると考えればよさそうに思えます。まさかFlash 9の開発チームも、個々のインスタンスに設定すると統一性がとれないから、インスタンスの座標や角度まですべてまとめて1箇所で指定しろとまではいわないでしょう。


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

rin-ko
Åê¹ÆNo.27096
投稿日時: 2006-7-20 0:10
職人
居住地: 東京
投稿: 397
使用環境:
MacOSX10.5/10.4
WinXP SP3
MX2004Pro/CS3
Re: on(release)がなくなる!?
な、なんと。
引用:
「絵を描いてちょっとだけ動かしてみる」ってこと

そうですね。これが出来るからこそ、Flashってここまで作り手も増えたのだと思います。
きっちりした言語できっちり仕様を決めて計画に沿って作らなければ作れない、あるいは作りづらいものは確かにあると思います。
でも、思いつくままに直観的な作業でしか作れないもの、作りたいものもたくさんあるはずです。
野中さんのレスを拝見すると、必ずしも従来の方式を切り捨てなければ向上は望めないというわけでもなさそうですし、気軽なアプローチもぜひ残して欲しいと思います。
必要なスクリプトを書いているうちに情熱がしぼんでしまうような仕様にだけはなってほしくないと願います。

引用:
目に見えるものしか信じない(笑)

あー!わかります(笑)。
私もattachMovie()ですとかcreateEmptyMovieClip()ですとか、イマイチ信じられない感じがします。
ひろゆき
Åê¹ÆNo.27097
投稿日時: 2006-7-20 0:16
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: on(release)がなくなる!?
引用:
rin-koさんは書きました:
引用:
目に見えるものしか信じない(笑)

あー!わかります(笑)。
私もattachMovie()ですとかcreateEmptyMovieClip()ですとか、イマイチ信じられない感じがします。

不安を感じます。ホントに存在しているのだろうかと。

最近、ようやくリスナーの影が見えてきた気がします。


----------------
質問する際は、回答者に具体的な情報を与えてください。

森 巧尚
Åê¹ÆNo.27099
投稿日時: 2006-7-20 1:48
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: on(release)がなくなる!?
野中さんの言われるように、Flashアプリにonを実装するのはそれほど難しいものとは思えないんです。

今のFlash9アルファ版でも、MovieClipを手動で作ったときなど、AS3なら本当ならどこかに初期化のスクリプトとかが必要なのに、それは書く必要がない。つまり、そこはFlashアプリが内部的に自動でやってしまってるわけですね。
これと同じように、Flashアプリ上でボタンにonって書けば内部的にはイベント処理に自動的に変換してくれるようにするのはできるはず。

だから、onをFlashアプリに実装するかどうかは、ユーザーが必要としてるかどうかにかかってるだけのように思いますね。


----------------
森 巧尚
http://www.ymori.com

Duke15
Åê¹ÆNo.27104
投稿日時: 2006-7-20 10:39
常連
居住地: 埼玉
投稿: 196
使用環境:
XPpro,2Kpro,
MX2004prov7.2
FlashPro8
Flash9Preview α
Player8r24
Player9.0.16
Player7r63
Firefox1.5.0.5
IE6,NB8.1en
Re: on(release)がなくなる!?
Java言語のように推移してくると、
やはり、オブジェクトに直スクリプトは書かないので
致し方なくなるのでと思います。

あと、on(release){}などの書き方は
Javaでいうアダプタークラスが用意されれば
リスナへの登録は
button.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
から
button.addEventListerner(new buttonListener());
というくらいの書き方は仕方がないとして、
あとはリスナクラスを書きやすく

class buttonListener extends マウスアダプタ{
    public onRelease(){
        gotoAndStop(10);
    } 
}

のようにすれば理解はしやすいかと思います。
そういう仕様になればの話ですが。

引用:

森 巧尚さんは書きました:
今のActionScript 3.0では、on(release)やonReleaseが使えなくなります。

つまり、「これからはボタンにスクリプトが書けなくなってしまう」ということです。

中略
と、僕は思うのですが、みなさんは、on(release)がなくなったら困りませんか???


----------------
site:
http://www.yumenext.com/
blog:
http://star.ap.teacup.com/flash/

野中文雄
Åê¹ÆNo.27113
投稿日時: 2006-7-20 12:30
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: on(release)がなくなる!?
「現状のActionScript 3.0の仕様」はそのとおりで、インスタンスへの記述はできません。ただ、このスレッドで提示されているのは、「従来のインスタンスへの記述」も維持すべきではないかという問題意識です。

Duke15さんは、それはなくしてしまって構わないというご意見でしょうか? そうすると、現状ActionScript 1.0止まりで仕事をされている(おもにデザイナーやアニメーターの)方々は、(1)AVM2は諦めてAVM1を使い続けるか、(2)ボタンクリックやフレーム移動程度しか使わなくてもActionScript 3.0を学ぶか、(3)スクリプトはプログラマーに依頼するか、くらいの選択肢しかなくなるように思えます。
引用:
Duke15さんは書きました:
Java言語のように推移してくると、
やはり、オブジェクトに直スクリプトは書かないので
致し方なくなるのでと思います。

ちなみに、ActionScript 3.0は、ECMAScript 4準拠です。ECMAScript 4が「Java言語のよう」であるかぎりにおいて、Javaに仕様は近づきます。ECMAScriptはJavaScriptのいわば国際標準ですし、「JavaScript」という命名からしてJavaを意識していたことは確かです。しかし、Javaを目指している訳ではありません。


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

Duke15
Åê¹ÆNo.27114
投稿日時: 2006-7-20 12:41
常連
居住地: 埼玉
投稿: 196
使用環境:
XPpro,2Kpro,
MX2004prov7.2
FlashPro8
Flash9Preview α
Player8r24
Player9.0.16
Player7r63
Firefox1.5.0.5
IE6,NB8.1en
Re: on(release)がなくなる!?
インスタンスへの記述でAS3.0のAVM2の速さが出せるなら、
それは、それで望みますよ。

しかし、AS3.0での記述の仕方でしかAVM2の良さが出せない仕様なら
せめてもの記述をAS1.0に近づけていただければいいのではと
思うのが精一杯かな?と思った訳です。

引用:

野中文雄さんは書きました:
「現状のActionScript 3.0の仕様」はそのとおりで、インスタンスへの記述はできません。ただ、このスレッドで提示されているのは、「従来のインスタンスへの記述」も維持すべきではないかという問題意識です。

Duke15さんは、それはなくしてしまって構わないというご意見でしょうか? そうすると、現状ActionScript 1.0止まりで仕事をされている(おもにデザイナーやアニメーターの)方々は、(1)AVM2は諦めてAVM1を使い続けるか、(2)ボタンクリックやフレーム移動程度しか使わなくてもActionScript 3.0を学ぶか、(3)スクリプトはプログラマーに依頼するか、くらいの選択肢しかなくなるように思えます。


----------------
site:
http://www.yumenext.com/
blog:
http://star.ap.teacup.com/flash/

(1) 2 3 4 ... 11 »
| 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops