ActionScript 3勉強中 バナー作成 その1
とりあえずバナーを作ろうと思った。作業環境はFlash CS3。
仕様(あるいはやったこと
- ActionScript以外の機能は極力使わない。
- 画像を表示する の前にまずは 文字を表示する。
- クリックで http://d.hatena.ne.jp/neotag/ が開く。
ActionScript以外の機能は極力使わない。
BannerStructure.as にこんな感じで空のClassを用意
package { public class BannerStructure { public function BannerStructure() { //コンストラクタ関数と言うらしい。 trace("ここに処理を書く") } } }
1フレーム目に↓な感じで作成したクラスを呼び出した。
var myBanner1:BannerStructure = new BannerStructure();
画像を表示する
とりあえずTextFieldを表示する。前にHelloWorldやってるから簡単。
と、思いきやstageが参照できなくてすげーはまった。なんか気持ち悪いけどBannerStructureにstageを渡してやる事に。。もしMCの中に表示するならちょっと修正が必要。
package { import flash.display.Stage; //stageを扱うからStageクラスが必要 import flash.text.TextField;//TextField扱うから以下略 public class BannerStructure { public function BannerStructure(stage:Stage) { //stageを受け取る。 var myLinkText:TextField = new TextField(); myLinkText.text = "ここをクリック!"; stage.addChild(myLinkText); } } }
1フレーム目をちょっと修正。なんか納得いかない。。
var myBanner1:BannerStructure = new BannerStructure(stage);
クリックで http://d.hatena.ne.jp/neotag/ が開く。
myLinkTextにクリックイベントでlinkClickって関数が走るようにした。
たぶん function linkClick〜 のあたりは書き方をもうちょっと考えるべき。
package { import flash.display.Stage; import flash.events.MouseEvent; import flash.text.TextField; import flash.net.URLRequest; import flash.net.navigateToURL; public class BannerStructure { public function BannerStructure(stage:Stage) { var myLinkText:TextField = new TextField(); myLinkText.text = "ここをクリック!"; myLinkText.addEventListener(MouseEvent.CLICK, linkClick); function linkClick(event:MouseEvent):void{ var myUrl:URLRequest = new URLRequest("http://d.hatena.ne.jp/neotag/"); navigateToURL(myUrl); }; stage.addChild(myLinkText); } } }
ところどころ納得いかないけどとりあえず把握。Flexだとstageそのまま触れるのになー。うーん。
おまけ
Wonderflで同じのを作ってみた。Stageの問題がないのでもうちょいシンプル。
http://wonderfl.kayac.com/code/72126a5d596acf8c75978c387e9de59d798fa374