「ActionScript」を含む日記 RSS

はてなキーワード: ActionScriptとは

2011-12-17

Flash vs HTML5」関連話への反論は まだまだ技術者側の説明不足か

先日「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 以外にも色々やってます、と言っている。

最後の締めとして

Flash よりも優れたものが登場するのであればそちらに移行するでしょう、

とも言っている。

これだけの説明があったのに

ディスカッション内で触れた HTML5 に対する否定的な話は、

Flash 派』とやらのポジショントークだと目に写ってしまったのだ。

Java やら C やら objective-c やら perl やら php やら

サーバサイドからスマホネイティブ言語を用いてのアプリ制作まで

色んな事やってます、と言っても

技術者ではない人達には馴染みのない単語は耳には入らない。

技術的な事はよくわからない。

現在世の中には HTML5 を推し、合わせて Flash を否定する記事が結構出回っている。

技術者が話す専門的な用語の飛び交う話よりも

どこの誰が書いたかもわからない

HTML5 vs Flash 的な読みやすい記事に耳を傾けてしまう人はいる。

Apple 製品を好む人は「ジョブズがそう選択したのだから」と

なおさらこういった記事に目を向けてしまう。

Flash vs HTML5 の話にのせられてしまうのは、よくわかっていない人だ。」

そうあっさり切り捨ててしまうのもいいかもしれないが、

そうもいかない状況にもなってきてしまっているのが最近だ。

ディスカッション内では、

Flash大丈夫なのか?」という

ネット上の煽り記事を読み不安に思ったクライアントから連絡を受け

きちんと状況をゼロから説明するハメになってしまった、という内容があった。

似たような状況になっている人もいるのではないだろうか。

当方周辺では、

Flash は駄目だ」「Flash でなくても HTML5 ならできるはずだ」

HTML5Flash の代わりになるものだと言われている」と

クライアント、あるいは仕事先の関係会社から耳にする機会が増えてきた。

技術者の及ばないところで

ベターではない技術が選択、あるいは勧められてしまう やっかい性。

危惧した技術者達による反論記事は結構出始めているのだが

その記事は世間の目には届かない。

TV CMバンバン流れている iPhoneiPad では Flash を見ることができない

という状況に乗じた

いかげんな煽り記事の効果は絶大だ。

よくわからない人が圧倒的多数なのだ

勘違いを正すためには、今までよりもより一層

からない人達に わかるように説明、

あるいはメッセージを発信するよう心がけていかねばならないと感じる。

技術へ移行は容易い

パネリスト達のような

Flash を扱う事が可能な技術力を持ち合わせている人にとって

Flash が終わろうが、代わりの技術HTML5 やらその他何になろうが

大した影響はない。

「この文章書いている人間Flash 派なのでは?

 Flash 派の人間がそんな事言っても説得力ないな」という

ポジショントークと見られないための判断材料として、

プログラミング』についての話をしてみる事にする。

プログラミングに詳しいすべてのエンジニアはこういうだろう。

「世にあらゆるプログラミング言語があるが

 それらプログラミング言語の違いは記述の仕方が違うだけ」

「何か一つ言語を習得し

 その言語で自由に物を作れるだけのスキルを持ち合わせたならば

 別言語、別環境になろうとも移行は容易い」

Flash の事は全く知らないがプログラミングプロフェッショナルの人』

が近くにいるならば是非上記について伺ってみてほしい。

その通りだと答えてくれるはずだ。

Flash で用いられている言語は何も特別なものはない。

世にある あらゆるプログラミング言語のうちの一つである

プログラミング概念を理解している人ならば

Flash で作ったものを他の言語移植することも、

他の言語で作ったものFlashプログラミング言語移植することも容易いのだ。

ここで上記三行の「他の言語」を「JavaScript」に置き換えてみてほしい。

HTMLDOM 操作に必要な言語JavaScript である

言語は、Flash ならば ActionScriptHTML5 ならば JavaScript を用いる。

画面描画は

Flash ならばグラフィックスシンボル等を作成・配置、

あるいは用意されている描画用 APIActionScript で呼び出し、

HTML5 ならば CSS, HTMLタグ記述

あるいは用意されている描画用 APIJavaScript で呼び出す。

Flash と似たような技術として Java AppletShockwave があるが、

これらも一緒で

言語を変え、その技術に合わせた描画を行う処理を記述するだけだ。

Flash派」「HTML5派」といった具合に

Web 技術者が何かに属していて、何かには属していないかのような区別の仕方は

的がはずれている事を なんとなく感じていただけただろうか。

技術者にとっては要はなんだっていいのだ。

仕事に対し、あるいは表現したい事に対し、ベターな選択を行うだけの事なのである

PC向けゲームなら Flash

スマホ向けサイトなら HTML5

環境や表示内容に合わせ両方を採る選択もあるだろう。

パネリストの中に ActionScript好きだ、という人がいた。

これは別に

Flash が好き(製品のファン)だから ActionScript が好き、と言っているのではない。

現存するあらゆる技術比較した上で

ActionScript が優れたプログラミング言語だと判断しての発言なのだ

将来的に HTML5 が格段に進化する日がくるならば

HTML5 を選択するだけの事であり、

HTML5 が廃れて別の技術が登場するならば

その別の技術を選択し、

Flash より優れた技術が登場しなければ Flash を使い続ける、

ただそれだけの事なのである

対立どころか むしろ近い存在

もう少し突っ込んだ話をすると

Flashプログラミング言語である ActionScript(ActionScript 1.0)と

HTML 表示制御を行う言語 JavaScript は 実は同じ言語仕様である

ECMAScript』という単語で調べてみてほしい。

FlashHTML5 は対立するもの」と考えていた人、

あるいは ActionScriptJavaScript を触れたことがない人にとって

「え?そうなの?」と思う人もいる事だろう。

JavaScript は大規模開発に向いていない、という話は聞いたことがないだろうか。

同様の言語仕様である ActionScript 1.0 はこの問題を解決するため

ActionScript 2.0 から ActionScript 3.0 へと進化していった。

FlashHTML5 とで同等のもの制作する場合

Flash は開発がし易い、という話がよく挙げられるが

その理由の一つがこれである

現行の JavaScriptActionScript 1.0 は ECMAScript 3 準拠に対し、

ActionScript 3.0 は ECMAScript 4 準拠である

言語として進化しているものFlash採用しているので

開発は抜群にし易い。

ECMAScript 4 準拠の JavaScript も登場する日もあったかもしれなかったのだが、

Adobe はここで大失敗してしまった。

ECMAScript 4 標準化白紙

ECMAScript 4 は無かったことになってしまったのだ。

ActionScript 3.0 で作成したプログラム

そのまま HTML ブラウザで動作する事はなくなった。

技術者にとってコストを削減できるための手段の一つを

政治的な思惑によって潰されてしまった悲しい過去の話である

ちなみに JavaScript は大規模開発に向いていない、という事に対し、

最近では Google が新言語 Dart というものを開発している。

位置づけとしては ActionScript 2.0 に近いと比喩した人もいる。

ActionScript 2.0コンパイルActionScript 1.0 に変換されて出力される。

Dart も同じく JavaScript 変換機能を持つ。

今後

先の事は誰にもわからない。

HTML5 が成長するとは必ずしも言えない。

技術者は身を持って知っている。

ブラウザの足並みが揃ったことは過去一度たりともない。

表示と動作の差異、技術者はずっと苦しめられてきている。

めんどくさい。コストがかかる。

日本では IE6呪いはまだまだ続く事だろう。

現状の HTML がひどい状況なのだから

HTML5 も同じ道を辿るのでは、と言われてしまうのも仕方がない。

実際に HTML5 の各ブラウザの実装具合はバラバラである

Flash はといえば、

今でも 10年以上前スクリプト言語 (ActionScript 1.0 よりも前の言語)で

携帯向け Flash を作るはめになっている開発者が多い。

携帯向け Flash Player 開発中止、とある

Flash が動作するブラウザがいつまで携帯に搭載され続けるのか、

まだ誰にもわからない。

今後も当面携帯向け Flash を作り続ける事になるのかもしれない。

この古い言語での開発はとても苦痛であるが、

携帯向け Flash は一つの容量が小さいというのが救いである。

IE6 対応 HTML サイト制作にせよ、携帯向け Flash 制作にせよ

10年以上前ものが現役とは妙な話である

しか技術者対応するのだ。

状況に応じて何を選択するかを判断できるほどの技術力を身につける事

それが一番重要である

これから Web技術者を目指す、という人は

HTML5 なり Flash なり何を学んだっていい。

選択する技術に何ができて何ができないのか、

どの技術を組み合わせるとよいのか、

自ら判断できるようになった時、一人前の Web 技術者になったと言えるだろう。

一つ何かをモノにしてしまえば前述の通り移行は容易い。

今何かを勉強中の人は周りの声に流されず、

それを極めるくらいまでとことん勉強してほしい。

続けていくと見えてくるはずだ。自信という名の悟りの道が。

ディスカッション感想

気になった点をいくつか。

現状の HTML5 の実装具合のバラバラさに対し、

「(HTML5の)表示の差分を埋めてくれる何かが登場するかもしれない」

と言う発言があった。

言った当人も会場にいる人達も、きっとこう思っただろう。

「それってなんて Flash Player?」と。

HTML5Flash の真似事をしてますよね」

「あれはやめたほうがいい」という発言があった。

おそらく HTML5 canvas の事であろう。

この意見に対し「ムッ」と来てしまった人がいるかもしれない。

勝手に注釈するのであればこの発言は

Flash で作られた重たい WebHTML5 でまた再現するつもりなの?」

という皮肉であろう。

2011-01-15

12時間ほどでTwitter連携webサービスを作った記録

2010年年末から年始にかけて10連休ほどあったので、新しいサイトを作ろうと思い立った。

自分スペック

何を作るか

小遣いを稼げるサイトしたい、とまず思った。

月に1万円だと、毎日コーヒーを飲んでるだけでなくなってしまうので、コーヒー代くらい稼げたらうれしいなあ。じゃあどうする。何を作る?

ということで、まずTwitterを使ったものを作ることにした

テーマ

ひとつジャンルにしぼってツイートをかき集めれば、面白い流れになるんじゃないか。人が来るんじゃないか。そう思った。togetterたいな。で、ジャンルは、個人的に興味がある子育て。ていうか毎日帰宅してから朝まで子どもの寝かしつけや夜泣き対応サイト更新する暇も、俺が寝る暇もあんまりない。ので、手がかからないことが大前提。なんだったら自動更新でもいい。

自動更新かー。と思って「ブログ 自動更新」でググったら、wordpressRSSから更新するプラグインがあるらしいことを知った。はい決定。その瞬間、「TwitterAPIからRSSを引っ張ってwordpress投稿するサイト」に決まった。

やってみた

12時間は実装を初めてから時間になります

1時間

さくらインターネットスタンダードを申し込んだ。14日お試しがあるらしいけど、仮申し込みの時点で住所も入れてコンビニ請求にしたら、数日後に請求書が送られてきてビビった。(同時にドメインも申請しちゃった)

まあ、webで申し込んで、すぐにサーバコントロールパネルという画面に入れるようになった。「クイックインストール」というリンクがあったので見てみたらMovableTypeWordPress自動インストールしてくれるらしかったので、ボタンを押したインストールできましたというので発行されたURLクリックしたけど404だった。1時間くらい404で、その日はもう寝た。

2時間

次の日の夜。これはもう、10連休を利用して毎晩1時間ずつ捻出するしかない、さくらのお試し14日あるから約14時間で作りきるしかねえ、と思った。

サイトアクセスしたwordpressが入ったページが出てきた。おお、サイトができてる!

まずTwitterを調べるか、と思って、「Twitter API」で検索したけどOauth?とかいう面倒なことをしないといけないらしかったのでやめた。じゃあ普通に検索は?と思って「Twitter 検索」で検索したら、search.twitter.comの結果はjsonatomで取得できるし、APIコール制限もないらしいのでこれに決定。検索だけで1時間たった。

3時間

夜も更けて、続けて作業した。「wordpress xml 投稿」で検索していくつか探したらFeedWordpressというプラグインがあったので入れた。あ、事前知識としてMovableTypeでのブログはやったことがあったので、プラグインを入れるみたいな話はスムーズに進められた。

で、twitter検索結果をatomで返した結果を入れてみた。ら、本当に投稿されてた。よっしゃできた、と思った。1ツイートが1エントリになってたし、投稿者もツイートした人になってた。よかった。でも、満足できなかった。

4時間

次の日。同じことを自力でやる方法を探した。「wordpress xml 投稿」で検索して、XMLパースできるようになればいいんじゃないかと思い、simplepieというPHPライブラリにたどり着いた。が、PHPなんてまったく知らないし、憶える気もなかった。actionscriptで書かせてよ、とずっと思ってた。

5時間め・6時間

次の日。「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って馬鹿ねと思いながら寝た。

7時間

年があけて、3が日が終わりそうだった。年末にやってたこと(上記までのこと)を思い出しながら、XMLの必要な部分だけ抜き出す方法を模索したatomっていってもentryがたくさん入ってたか配列にするんだろうけど、ってんで「php foreach」を検索。なんとなくサンプルコードをまねしながら、記事タイトル、記事本文だけ取得した。あとはxmlrpcのサンプルにあわせて投稿するようにした。できた。寝た。

8時間

次の日の朝、ブログを見た。昨日更新したのしかあがってない。自動じゃねーじゃん。

で、「自動 投稿」で検索したら、クローン(cron)という仕組みを使わないといけないのだった。クローンサーバの仕組みらしく、そういえば俺はPHPをはじめDBサーバという単語を極力さけて仕事してきたので、もう気持ちが悪くなってきた。「さくらインターネット cron php」で検索して、なんとかやり方を見つけて、cronを登録した。(1時間に1回にした。設定は * * * 0)

9時間

仕事から帰ってきて、サイトを見ると、投稿が大量にたまっていた。やった!で、調子に乗ってツイッターアカウントを作った。なんだったらツイッター自動したかったので「twitter bot」で検索した。Easybotterというサンプルボットがあったので使わせてもらった。自動で一行ずつつぶやくようにした

時間外)

サイトテーマを考えてた。通勤電車で悶々とする時間

ツイートを集めることは成功したけど(毎時間100件のツイートを1エントリとして投稿してる)、それを眺めて面白いんだろうか? ボットを動かしてるけど人がくるんだろうか?

そんなとき「trivist」がはてブに載ってた。なんかにたものを感じた。やっぱツイートを引っ張ってきて投稿するサイトはアリなのか?アリなはずだ!

10時間

サイトの体裁を整えた

11時間

trivistをまねて、記事を評価(はてなスターかいいねボタンかにいもの)する仕組みが欲しくなった。「wordpress 評価 プラグイン」で「wp-postratings」というプラグイン発見して、入れてみた。どうやら1エントリーに1評価しかできないらしい。俺のサイトは1エントリーに100ツイートあるから、どのツイートを評価するのかが分からない。

いったん、wordpressの全投稿を削除した。で、cron に登録されてるPHPを、1記事に1エントリーした

12時間

エントリー投稿するついでに、Yahoo日本語解析APIをつかってツイートを分析して、名詞動詞だけを取り出そうと思った。それをタグにすれば、タグクラウドが作れると思った。はてブはずっとずっと昔からやってるからYahoo日本語解析っていうのが2006年くらいに流行ったことをなぜか憶えてたので、やってみた。できた。

なんか俺、PHP書くのが早くなってね?

そして微調整をしながら今に至る

アクセス解析を入れてみた。サイトに来てる人は、俺だけだった。

どうにかして人を増やしたい。サイト広告募集はする気がないしベタベタバナーを貼りたくなかった。みんなが気軽に見に来て、軽い気持ちで評価してくれて、更新を楽しみにしてくれるサイトしたかった。コミュニティサイトじゃないけど、やっぱりサイトコミュニケーション設計をしないと意味がないんじゃないか、見てくれるユーザはどうやったら楽しいんだろう、ということを考え続けて10日ほど経った。Twitter経由で来てくれた人が3人ほどいるようだけど、何がダメなのか分からないので増田にお願い。


ここまで書いて教えてくんじゃねーか、と思われるかもしれないが、ググレカス的な検索は上記で書いたみたいにいろいろやってきた。でも、サイトを作ってみてはじめて、ユーザに向けたサイトってどう作ればいいのかが分からないということに気づいた。

小遣い稼ぎもしたいんだけど、面白いサイトを作るヒントがほしいと思った。

kanzen21やtrivistみたいに、俺も過程を全部さらしたから辛辣意見を求む。そしてはてブされるのを待ってます

http://kosodate-now.com/

2010-12-23

Web対戦ボードゲームチャット】を作るにはどうしたらいいだろう。

プログラミング勉強中。

そりゃあ、やろうと思えば様々な手法があるだろうけど…

いかに余計な作業を減らして「やりたいことを実現」するための作業に専念するか、を考えている。

いろんな言語への興味はあるが、むしろそのせいで今まで時間いまくってるので、そろそろ「手早く作る方法」を知りたい

あんまり色々な手法を試してもいられない。

「これ!」ってやり方を決めたい

何か、すっきりしたやり方はないものか…

作りたいもの

2人対戦ではない。4~6人前後が参加する。
プレイヤーのアテは既にある。
3Dじゃないし画像ゴリゴリ動かしたりはしない。
扱うのはテキスト中心。GoogleドキュメントやOnsheetを改造したたいな感じのものが作れればいい。
全員が全ての情報を見られるわけではない。公開情報と秘匿情報がある。
ログイン制にするかどうかで迷う(手軽さが失われる?)。
中断→再開 ができるようにしたい。
これはそんなに問題ないだろう。
対戦格闘アクションたいな「リアルタイム性が命」ってものではな
多くても1~2秒に1回くらい画面が書き変わればいい。
計算とかの処理も、せいぜい「山札をシャッフル」とかそういうのだけ出来ればいい。
べつに敵キャラ勝手に動いたりはしない。人間vs人間ボードゲームから
いちいちユーザーさんにインストール作業とかさせたくないので、ブラウザゲー(Webアプリケーション)にしたい。
…のだがブラウザゲーにすると大変なのだろうか? どうなの? って悩んでる。
「各人がサーバーを立てる」みたいなのも混乱するしタルいので、製作者のほうでサーバーを用意したいのだがどうなんだろう。
負担がどれくらいのものか気になる。月々数千円で賄えるだろうか? 同時に立てられる部屋数は、最初は2~4個くらいでいいと思うんだけど。



自分の状況

独学でプログラミング勉強中。

だが、あまり修得にばかり時間をかけてはいられない。

プログラミング言語は、C C++ Java Python Perl VB C# HSP PHP JavaScriptなど、どれも基礎を触ったりしてばかりで何年も過ごしてきた。

FLASHは持ってない。(PalaFlaは触ったことあるけど、いまいちイメージしにくかった)

なんだかんだで一番慣れてるのがHTML+CSSで、次点PHPJavaScript

jQuery大好き。 Ajax大好き。

ただ、PHPだのjavaScriptだのSQLだの、複数言語を同時に扱ってると非常に面倒。

そこでサーバーサイドJavaScriptに目をつけたものの、『Jaxer』は2008年に書かれた記事がちょっとあるばかりだし…

Node.jsってどうなんだろう…?

考えられる手法

PHP + MySQL + jQuery
いちばん無難だと思う。現行はこれ。でも面倒さが拭えないし、「MySQLでいいの?」みたいな疑問もどんどん湧いてくる。
上記のもの + Cake PHPなどのフレームワーク
自分の求めてる「手軽さ」を実現するには良さそうだが、また別の問題がいろいろ発生しまくるような気がする。
Ruby on Rails
なんか、いいとか悪いとか色んな話を聞く。
Skypeプラグイン?として作る
日本語情報が少ない。
GoogleドキュメントやOnsheetにマクロを組み込む
なんか違った。
FLASH
良さそうに思える。…が、無料ActionScriptを体験してみたら、どうも馴染めない。
Shilverlight
Javaアプレット
今までまったく触れていなかったが、もしかしたらいいのかも? と思い始めた。とりあえず今から触ってみる。


うーん、あまり纏まってないが、とりあえず現状をダンプしておく。

なんか参考になるものがあればなー。

こういうこと色々聞ける相手も周りにいないし

2010-09-18

http://anond.hatelabo.jp/20100917191635

coolになりたいとしか読めなかったorz

 

まあ、それはともかく、この子は何のデザイナーになりたいんだろう。

 

服飾?工業ウェブ?そのほか?

 

一番簡単なのはウェブだと思う。

そのためにプログラムをある程度勉強して。

 

javascriptactionscriptバリバリ書けますー

でもウェブデザインやりたいですー

もちろん、色関係の資格はマスターしましたー

携帯? あんなのカスですよw

 

これくらいなら、3年あったらいけそうじゃね?

そんで、就職しろよ。

ウンコみたいな美大卒よ金稼げて、デザインできるよー

2010-08-31

http://anond.hatelabo.jp/20100831115103

HTMLとかCSS決めてる人ってどう使われるか想像したこと無いのかな。

ボックスモデルがどのようにレイアウト構築するか理解した事が無いのかな?

文字と絵をレイアウトするものは大概ボックスモデルベースに作られてるだろうが。

今まともなGUI付いたインターネットコンテンツ作成環境ってFlashぐらいだよ。

そのFlashだってActionScriptFlexで配置指示してしまえば、お前さんが言うめんどくさい組み方になると思うがな。

だからスティーブジョブズも奇妙なWeb標準なんか放って置いてiOSアプリを書かせようとしてるんだと思うよ。

少なくともUI要素をインラインで配置なんて訳わかんないことしなくていいでしょ。

えぇと、InterfaceBuilderしか使ったことしか無いのか。

どのみち、InterfaceBuilderで出来ない事やろうとしたら、めんどくさい組み方になる。

ポストスクリプトPDFテキストエディタで書く奴なんか変人

変人で悪かったな。

PHPから動的にPDF吐き出すとか、実装するならテキストベースレイアウタ使ったほうが楽だろうが。

変人が標準って変だよ?

そもそもが、プログラマ研究者向けのものなのだが。

それを、何も判って無いお前のような奴が多少は使える気になって喚いてるだけ。

開発側は最低限の物は用意してるんだ。

気に食わないなら、自分WYSIWYGシステムでも組んでりゃいいだろ。

そして、これが重要だが、見ている人間は、別に裏側が何で出来てようが、見えてる画面が全てだ。

見えてる画面のクオリティーをあげたいなら、HTMLCSS仕様書熟読して、理解するこったな。

2009-12-28

ttp://d.hatena.ne.jp/nitoyon/20091228/as3corelib_lazy_json

普通の人だったらどうやったら簡単に JSON を吐き出すクラスを作るか、だと思うんだけれども…正直何をしたいのか理解に苦しむ。AS系、とひとくくりにはしたくないけれど、ActionScriptソースをいくつかいじった経験でいくつかこういうの、見てきた気がする。

2009-07-12

http://anond.hatelabo.jp/20090712163829

建築系の4年だけども、ちょっと言いたい。

デザイナーになり方なんて無いぞ。

デザイン職として企業採用されれば君の言うデザイナーなの?

経験者歓迎の求人に申し込んでも、結局経験者から採用していくのは当然なわけで

当然じゃない。そりゃ技術はもちろん元気よく愛想よく営業能力も抜群なら未経験者の出る幕無しだけど、他分野の未経験者を採ってその人の強味を活かしたいだとか、

何色にも染まってない人を採って会社のやり方を疑いなく吸収してくれるからだとか、未経験に期待する人事担当者も実際にいるわな。

で、どうすればなればいいって人に聞いてる時点でデザイナーとしてやってくのは無理なんじゃないかと。

ウェブデザイン業界はよく知らないけど、そもそもデザイナーがやるべき仕事ソリューションなんだから、それに矛盾しない形が表現できるかどうかがデザイナーの質だと思うのね。

だからコンサルティングの要素が強い。問題解決能力を一番求められるのにそれを聞いてるようじゃダメっしょ。

まぁ他学科の学生が言うのもアレだけども、技術力とデザインセンスとDTPスキルを磨けば何とかなるんじゃないかな。

具体的にはTCPIPとかFTPとかDNSとかhtaccessとか無数にある用語とその意味を把握した上でperlCGI作ったりruby on railsブログを作ったりしてウェブの基礎知識を蓄えてだな、

それで最も重要なのはデザインスキル。DTPオペレーターデザイナーとか自称してるの見てると笑われるだけだからここ重要な。

まあデッサンしまくって立体造形感覚を磨いて色彩とかフォントとかレイアウトとかデザイン全般に必要な知識も学んでだ、モニター上に表現する前に紙に書けないとオペレーター止まりよ。

その後でHTMLとかXMLとかマークアップ言語勉強してテキストエディタで一通りウェブページを作って、頭に中で思ってる事と実際にプロットされる画面とを近づけていって、ついでにワードプレスとかのCMSも勉強してphpSQLの仕組みが大体解ってこれば知らぬ間にウェブデザインでやっていくに自分に足りないものが解ってくるってもんよ。

この辺りまで来ればサイト作れるでしょ。アイデアを必死に考えて3,4つポートフォリオを作ってだな、仕事していく上で会社で使ってるソフトを覚えておけばいい。

サイトデザインが人より劣っていてもactionscriptである程度の事できたりphotoshopでかっこいい素材作れたり実務経験うんぬんに左右されない人材評価項目なんて一杯あるもんだ。

こんだけでも未経験でやれることはたくさんあるでしょ。ちなみに上のは俺がやってきた事ね。

面接で何も持ってこなくて「やる気は誰にも負けません!」っていうのと、実際に自分が作ったものが下手でもいいからもって来るとではどっちが努力の片鱗が見えるとおもう?

もう解ったよな、はじめよう。

2009-06-17

http://anond.hatelabo.jp/20090617144121

C/C++CPU依存性を減らしたアセンブラで、面倒くささを耐える代わりに速度を稼ぐという特殊用途言語なんだから、「プログラミングは面倒だ」の例としては局所的すぎるなー。大量のバッドノウハウを楽しんで乗りこなすマニアどもが、ゲーム組み込み検索エンジンあたりの開発に使うプロ向けの道具で、間違っても「プログラミングの細かいところが嫌い」なんていうライトプログラマが使うようなものじゃない。

もっとチャラい言語使いなよ。RubyとかActionScriptとか。よりによってPHP/C/C++とか選択がマゾヒスティック過ぎ。仕事だか学生課題だかで無理矢理使わされてるの?

2009-05-28

WEBデザイナとして食っていくには、これから何すべき?

とりあえずXHTML+CSSフォトショイラレFireworksは問題無く使える。

それに加えて、PHPJavascriptFlash(ActionScript含む)は、

簡単な物であればとりあえず困らない程度使える。

一応このへんは引き続き強化していきたいとは思っている。

デザインセンスは、「目的に合わせた」デザインが出来る…と自分では思っている。

正直なところ、目を惹くタイプではない自覚がある。

色とかレイアウトとか、センスよりも勉強してやってる感じだと思ってくれればいいと思う。

今20代後半なんだが、この先もこの職で食っていく為には、何を勉強したらいいだろうか。

プログラム楽しいけど、どちらかというとデザイナ寄りで食っていきたい。

同業者&近い職種の人いたらアドバイス頼む。

ちなみに、余程どこかで変化があればわからないけど、

今のところはフリーになるとか起業するとかは正直あんまり考えてない。

2009-05-04

初心者が最初に覚えるべきプログラミング言語


『本人がプログラミングをして、何をしたいかによる』

そっからは、やれC言語だ、やれActionScriptJavaScriptだ。ってやっていけばいい。


例えば、ゲーム作りたい!っていう奴がいるとする。

それで、まず最初はC言語だからねーって言ってscanfとprintfで電卓を作らせる。

これで感激して、もっと勉強したい!覚えたい! って、なるのか。

なればいいよ。でも多分ならないだろー

情報処理教科書みたいに、10進数から2進数へ変換するプログラム書きましょーって。出来るけど、そいつにとって何が面白いのよ。

C言語は確かに基礎だけど、ifとかforを基礎というならJSでもいいし、ポインタやらメモリ管理って言っても、本当にそれは必要なの?

それはC言語にとっての基礎で、シューティングゲームASとかで作る時は最初に覚える必要はないよね。

なにかしら目標もって、それを実現するために勉強していって、自分スキルが上がっていくのが分かるからモチベーションに繋がる。

そいつにとって、C言語目標までのトンネルが長すぎる。出口が遠すぎて目の前が真っ暗。

プログラミングの歩き方をよく分かっていない初心者。早く画面でいろんな動きが見たい!という初心者が、トンネルの出口までたどり着くのは難しい。

それなら、10行で早押しゲームが出来る言語から始めるべき。JSとかが楽かな。他にそういうのがあればそれでいい。

初心者にとっての丸写しじゃない10行は、エキスパートからみる500行と同じ。書いてる時の気分は。

自分の書いたコードが画面に色をつけて、クリックしたら反応する!!

でもクリックしても文字が変わるだけかー。それならもう一回クリックしたら、別の文字になるようにしてみるか。

ならついでに色も変えよう。以下略

まず自分パソコンの画面が動かせる!』ということを実際に体感してみないと。


RPGでも、最初からボス出てきて瞬殺されたらやる気なくすじゃん。最初はユルい敵倒していって、レベルアップしていく。

そのうち勝てない敵が現れるけど、勝ちたいから経験値貯めるんでしょ。

そのうちに、その言語だと絶対不可能なことが出てくるはず。その時にC言語やってポインタ覚えればいい。


今回はゲーム作ってみたいっていうパターンを例にしたからC言語ダメだと言ったけど

コンピューターの動作について理解したいとか、そういうのなら断然C言語かなと思う。

もちろんC++でもC#でも何でもいいけど。


とりあえず、初心者が「プログラミングしたいんだけど、どの言語がいい?」と聞いてきたら、

C言語と答える前に「プログラミングで何をしてみたい?」って聞いてみようよ。

そのやりたいことが比較的簡単に実現できる言語で、まず楽しさを覚えさせてあげて、こっちの世界に引きずり込め!

2009-02-09

ActionScript vs C#

これからのWebサービスとかデスクトップアプリケーション市場ActionScriptC#の対立になると思っているんだけれども、

その2つを対比している事をあまり見たことがない。

それはたぶんプラットフォームの軸でまとめられているから黒子になっているんだと思う。

ActionScriptFlashAIRの開発言語で、それに対してC#WPFSilverlight

Flash VS Silverlight最近ちょくちょく目にするから対比構造はあるんだろうけれども

それがActionScript VS C#とはならないのはなんでかなぁ

/*

VSと書いたのは煽っているからだけど、もっとC#Javaのようなイデオロギー紛争になっていも面白いのになぁ。

ASJava系譜の流れなんだから、AS vs C#言語コンセプト論争もあってもいい気がするんだけれども)

畑が違うっていうけれどもAdobeMSも向かっている所は似たり寄ったりで、

事実技術採用の時にFlashか?Silverlightか?みないな話は水面下でちょいちょいあるはずだと思う。

(それで「やっぱりFlashかな」とかなるんだろうけど)

*/

仮にRIAっぽいことを目指すならFlashSilverlightかを選択肢にあがるけれども、

そこにはプラグインの機能有無や普及の優劣の話しか持ち上がらない。

ビジネス的にはもっともな論点だけれども、

デベロッパから見た選択理由としてプログラミング言語のあれこれを考えないはずがない。

それなのにその考えが全然見かけないよ。

2008-11-13

彼氏Flash使ってた。別れたい…

FlashだとFlashなのにすごいですねって感想貰った時なんか恥ずかしいww

下向いちゃうしww

男にはせめてPremiere使って欲しい・・・

これ僕が作ったんだよってswf見せられたら・・・・もう最悪ww

せめて普通FlashでもActionScriptやってますぐらいは名乗って欲しい。

常識的に考えて欲しいだけなんです!

Flash職人なんだって言われた時の恥ずかしさとか分かる?

あのね?たとえばニコニコ動画MAD作品MAD作成講座とかあるでしょ?

それぞれ動画作成やエンコードとか苦心して頑張ってるわけじゃない?

みんな普通ニコニコムービーメーカーwindowsムービーメーカーQuickTime Proでやるわけでしょ?

Flashですなんてノコノコついてったら大恥かくでしょうがww

http://anond.hatelabo.jp/20081111000645

2008-09-01

日本ActionScriptコミュの定番

ってどこ?

Flash-jpは過疎ってるし、2chはレベルが低すぎて終わってる

twitterとかで個人同士の慣れ合いに突っ込むしかない?

2008-08-04

予告.inに仕込まれてた自動2ch書き込みFlashActionScript抽出してみた

予告.inに仕込まれてたFlash

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('&amp;');
    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);
  }
}
||>

2008-05-21

日本はてなユーザのためのハブサイト

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インスパイアされています。本当にありがとうございます。

2007-05-08

パフォーマンスとは

ネタへのマジレスマジレスしてみる。

Guthrie氏「われわれのベンチマークでは、Webブラウザにおいてネイティブ環境JavaScript300〜1000倍の高速動作を確認している」ってことだから、パフォーマンスの種類によって300〜1000倍かと思ったけど、この結果を見るとパフォーマンスというのはイベント処理とか描画処理とかを含む総合的なものらしい。そんなわけで総合的に300〜1000倍だと。

ただJavaScriptSilverlightは性質の異なるものだし、どう総合的に判断したのか分かりかねる。最近流行Lightboxばりのアニメーションとか? 比較するならFlash & ASと比較してほしい>Microsoft中の人

速度面以外でFlashとSolverlightを比較してみると……

というわけでFlashが有利かなーと素人が思っている訳ですが、みなさんどうですか?

2007-01-18

MTASCFlash Lite 2のcapabilities (System.capabilities)を使う

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;
}

サンプルは略

MTASCFlash Lite 2のSharedObjectを使う

Flash Lite 2.x ActionScript Language Reference > ActionScript classes > SharedObject

http://livedocs.macromedia.com/flashlite/2/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000749.html

Flash Lite 2.x ActionScript リファレンスガイド > ActionScript クラス > SharedObject

http://livedocs.macromedia.com/flashlite/2_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts_wEcute&file=00000749.html

アプリケーションが要求したときに、データをすぐにデバイスから利用できるようにするため、

Flash Lite 2.0 では、リスナーを設定する必要があります。

との事なので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メモ

http://www.saturn.dti.ne.jp/~npaka/flash/as20/index.html

ログイン ユーザー登録
ようこそ ゲスト さん