こんばんは。
ActionScript書くなら、FlashDevelopが鉄板なわけですが、Macユーザーなコードの書き手だったら、Xcodeも使えた方が、後々お得かも。という気がしたので、試しにちょっとXcodeでの開発環境を整えてみました。

Xcodeっていうのは、Macを買ったら必ずついてくる、総合開発環境(IDE)とゆーやつです。最初からインストールされているものではなく、付属のCD(DVD?)から追加インストールします。

Xcodeには、標準でActionScriptのテンプレートがついていないのですが、それを自作して公開してくださったかたがいらっしゃいます。↓こちらです。

Xcode用のActionScript 3.0テンプレートを作った - シン石丸の電脳芸事ニッキ

ありがたや、ありがたや。

しかしこちらの記事、少々古くてですね、最近のXcodeだとインストールするディレクトリが違ってたりします。

私の環境に入ってるXcodeのバージョンは3なのですが…Project Templatesディレクトリは、

/Developer/Library/Xcode/Project Templates

になります。

Flex SDKの設定は、どこでやるのかわからなかったので、ひとまず言われた通りのディレクトリ(/Developer/SDKs/Flex)にFlex SDKをコピれば、普通にビルドできるようになる。

コードのオートコンプリートについての情報は、上記からだとNotFoundになってたので調べ直したら、こちらからダウンロードしたファイルを「/Developer/Library/Xcode/Specifications/」にコピーすればいいらしかった。

オートコンプリートってか、カラーリングじゃね?と思った。

既に作成されたプロジェクトには適用されないようだった。

以上備忘録。

iPhotoに登録している写真のサムネイルが、一部おかしいぞ?変だ!
一部の写真のサムネイルが、全く関係のない写真になってしまっていて、コリャ困ったなぁ、と思っていたのですが、「教えて!Google先生」したら、解決法を発見。

  1. iPhotoが起動していたら終了する
  2. iPhoto Libraryの場所を確認(デフォルトでは、ホーム>ピクチャ)
  3. iPhoto Libraryを右クリックして、パッケージの内容を表示。
  4. Thumbで始まる3つのファイルを、ゴミ箱に入れる。
  5. iPhotoを起動する

と、「サムネールキャッシュを再構築中…」と出て、これが終了すれば正しいサムネイルになります。

以上備忘録。

会社ではDELLのノートPCにディスプレイやらキーボードやらを繋いで使っているんですが、入社時に、使いたい周辺機器(マウスとか)があれば言ってください用意します!と言われたので、自宅のぱちょこん環境と近くしたーい、と思ってKensingtonトラックボールを会社でも使ってるんですよ。

で、なんだかわたしのPC、トラックパッドが使えないんだよねー、とかずっと思っていたんですけど、最近になってやっと、Kensington MouseWorks(トラックボールのドライバ)が原因であることがわかったのです。遅!!

どうやら、MouseWorksをインストールすると、それまでデフォルトで入ってたトラックパッドドライバが上書きされちゃうみたいで。

試行錯誤してみたところ…

  1. デルのサイトからトラックパッドドライバのインストーラをゲットしておく
  2. MouseWorksをインストールする
  3. トラックパッドドライバをインストールする

で、上手くいきました。

最初にインストーラをゲットしておくのは、なぜだか知らないけどMouseWorksがインストールされてると、トラックパッドドライバのインストーラがダウンロードできないからなのでした。

もしかしたら、MouseWorksのインストール時にトラックボールを挿した状態にしておけば↑こんな手順踏まなくても問題なかったかもしれないんだけど、今さらそれを検証するのはすごく面倒なので、謎のままにしておく!

以上今日もそんな自分用メモ。

ボタンインスタンスにクリックとかイベントを登録するじゃないですか。(唐突に)

イベントハンドラでイベントを受け取って、event.targetとかでボタンのプロパティを抽出したりするじゃないですか。

ボタンインスタンスに別のインスタンスが入れ子になってると、その子インスタンスがtargetになるらしい。だからボタンインスタンス自身のプロパティが欲しい時は、event.target.parentとしないといけない。

知らなかったけどこれって結構知られてる話でした???

不勉強ですみません。

実は半年前ぐらいに、あれーなんかparentしないと上手くいかない時があるゃぁとか思ってたんですが、原因がはっきりしたのでメモしただよ。

Progressionで、CastSpriteクラスを使って、テキストを渡して表示するだけのクラスを作ろうとしたんですよ。そしたらうまくいかない。

テキスト流し込んだTextFIeldをaddChildしてるのに表示されないんです。んでプロパティをチェックしたら、インスタンスのwidth,heightが共に0。addChildした(はずの)TextFieldのwidth,heightはちゃんとしてた。ってことは、addChildの辺りで何か問題が起きてるのか?それともフォントの埋め込みが問題なのかな?

よくわからないけど、CastSpriteをやめてただのSpriteにしたら全く問題なかったです。

§

で、そのフォント埋め込みなんですが、flaファイル上で作ったTextFieldにembedFonts=trueでhtmlTextを設定した場合、でテキストを囲まないとフォントが埋め込まれないけど、TextFieldを最初からas3でnewしてあげるとfontタグが不要に。

んーふっ

§

で、前にも同じことがあったけど改めてメモなんだけど。

ProgressionでAddChildAtコマンドを使うときは、AddChildと混在させずにAddChildAtで統一しないと、配置するものの重なり順が思い通りになってくれません。

以上、そんなメモ書き。

TextField。

って、AS内でnewした時は、プロパティをwidth→wordWrap→autoSizeの順で設定してあげないと、狙い通りの挙動をしてくれない、ってのはなんとなく知ってたんですよ。

ProgressionのSerialList内でPropコマンドを使って順に設定しても、思ったように動いてくれなくてプチハマりました。

コマンドリスト内ではなく普通に1個ずつプロパティ設定してやったら大丈夫でした。

改行なしの右側可変TextFieldを作りたい場合。

var _tf:TextField=new TextField();  
var sList:SerialList=new SerialList();  
sList.addCommand(null  
,new Prop(_tf,{width:10})  
,new Prop(_tf,{wordWrap:false})  
,new Prop(_tf,{autoSize:TextFieldAutoSize.LEFT})  
,new Prop(_tf,{text:'ほげほげ'})  

〜中略〜
[as3 firstline=”10”]
);
sList.execute();

  
↑これだとTextFieldのサイズはデフォルトの100x100のままだった。  
  
[as3 language="gutter:false"]  
var _tf:TextField=new TextField();  
_tf.width=10;  
_tf.wordWrap=false;  
_tf.autoSize=TextFieldAutoSize.LEFT;  
_tf.text='ほげほげ';  

〜以下略〜

普通にこうしてあげれば、あとはコマンドで色々やっても大丈夫でした。

Progressionを猛烈に勉強しながら手探り開発とゆー、ちょっとあぶなっかしい順加です。

忘れないうちにメモなんですが、CastImageLoaderクラスを使って読み込んだ画像をリサイズしようとしても元のサイズのままということがあり、ハマりました。

flabakaさんとか参考にしたんですけどね。

ratioをtrueにしてwidth,height設定しても反映されなくて、そもそも読み込んだイメージのプロパティをwidth,heightでは取得できなくて。
でもscaleX,scaleYでならリサイズできるとゆー…。

結局どうしたかというと、addChildしたあとに、getRectしてRectangleのプロパティからwidth,heightを取得、リサイズしたいscaleX,scaleYを割り出して設定…っという回りくどいことをしてようやくうまくいきましたorz

なんだったんでしょうね。

2コンと同じく、こちらもメンテ対象外に決定したので更新するよ。

ので、っていうか、なかなかリニューアル作業に入れないので、とりあえず更新停止を解除しようかと思ってるよ。

さて、ダイナミックテキストに埋め込みフォントを使うと、パブリッシュ時に凄い時間がかかりますよね。

そこで外部swfに埋め込んだフォントを利用する技を使ったりするじゃないですか。

が…!そこにちょっとした落とし穴があった。

外部swfのフォントを利用している時に、flaファイルでその読み込みフォントと同じ種類のフォントを使うとフォントが表示されなくなります。

静止テキストでもNGです。分解してテキストデータを残さなければ大丈夫。

今日作業してたら急に文字が表示されなくなったので焦っちゃいましたよ。一個ずつ手順を戻って確認したらソレでビックリした次第。

そんなasメモですた。

flash player 9書き出しの設定で、swfを読み込むswfを作って、読み込み先swfのstage.scaleModeプロパティをStageScaleMode.NO_SCALEにしていたら、読み込み元swfでもそれが適用されて、stageサイズを変更すればstageWidthやstageHeightプロパティも追従して変わるようになっていたんですよ。

それをflash player 10書き出しにしたら、読み込み元swfでもstage.scaleMode=StageScaleMode.NO_SCALEを書かないと適用されなくて、ちょっとハマりそうになったよ。

そんな備忘録。

Eye-Fiというー、無線LAN機能付きSDメモリーカードを買ったお話をしましたが、その後基本的な設定は済んで、撮った写真をぱちょこんにコピーする手間から解放される日々が始まりました。

さらについでに、ぱちょこんからMovable Typeに写真をアップロードする手間から解放される日々も始まりたい!ので、その設定をやろう!としているのだけど、うまくいきません。

Eye-Fiってば、いろいろなことがかなり簡単に設定できるようになっているみたいで、公式の「よくある質問」を見ても、設定できます。としか書かれてないし、検索してもMTにアップできるんよー、できたよーという話は出てくるけど、その詳しい方法が書かれているところが見つけられない!

いや、実際簡単っぽいんだけど。入力欄4つしかないんだけど。(管理画面URL/サイトURL/ユーザー名/パスワード)

正しく入力してるつもりなんだけど、どんなにやっても「サービスにログインできません。ユーザー名とパスワードを確認してください」みたいなのが出る。何度も確認してますけど!!!!!

マルチブログだからダメなのかと思って、1個のブログしか編集権限を与えていないEye-Fi君専用アカウントまで作ったけどダメ。いったいなにがダメなんですか!!!!

だれかしりませんか。

と、ここで書いても誰も見てない気がするので意味無いんですけど。うわーん。

keyboard_arrow_up