投稿

ラベル(Flash ActionScript)が付いた投稿を表示しています

Error #1010: 条件は未定義であり、プロパティがありません。

子のムービークリップを参照するときに、this["mc1"].play()などのように書いたときに発生。 単純に「mc1」が無い場合に起こるエラーらしい。 まずは基本から、ちゃんと名前が合っているかを確認。 ちなみに、mc1.play()と書いて、「mc1」が無い場合のエラーはちょっと違って、下記のようになる。 シーン 1, レイヤー 1, フレーム1, 行 1 1120:未定義のプロパティ mc1へのアクセスです。 ※シーンなどの番号は場合によって変わります。

コンパイルエラー:シンボル'シンボル名', レイヤー 'レイヤー名', フレーム 番号、 行 番号 1061:未定義である可能性のあるメソッド[メソッド名]を静的型 flash.display:DisplayObjectContainer の参照を使用して呼び出しました。

ActionScript2.0までと同じ感覚でparentを使用してしまって発生。 ActionScript3.0では、「_parent」の代わりに「parent」を使えますが、parentでは型がMovieClipでは無いため、MovieClip型に変換(キャスト)する必要があると言うことです。 (例) parent.play(); →上記のエラー発生 MovieClip(parent).play(); →OK

TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。

他のオブジェクトの関数(メソッド)やプロパティにアクセスしようとしてできなかったときに発生します。 ■ ■ チェック箇所 ●参照しようとしたときに、そのオブジェクトが存在しているか  (オブジェクトがタイムラインに現れる前に参照しようとすると発生する) ●綴り、パスの誤り

TypeError: Error #1006: value は関数ではありません

存在しない関数を呼び出そうとしたときに発生するエラーのようです。 ■ ■チェック箇所 その名前のfunctionを定義しているか。 綴り、パスの誤りが無いか。

constとvar

class作成時に、定数を定義したいときにconstを使用する。 varと違い、内容は一度だけ書き込み可能。(後から変更できない) たとえば public const MY_NAME:String = "TANAKA TARO"; としておけば、「MY_NAME」の値は「TANAKA TARO」で固定され、たとえタナカタロウが結婚しても離婚してもこのスクリプト上で名前が変わることはない。 varはいわゆる普通の変数なので、後から内容を変更することができる。

Adobe AIR application for iOS で、Flash CS3でもiPhoneアプリが作れた。

Packager for iPhoneがFlash CS5にバンドルだったので、なんとなくCS5でないと作れないと思っていたのだけれど、要するにActionScript3のswfが用意されていれば良いのかも、と思ってやってみたらできた。 手順は昨日のエントリと同じ。swfの作成ツールをCS5からCS3に変えただけ↓ http://hcondo2000.blogspot.com/2011/04/adobe-air-26-iphone-retina.html だからなんだと言うことでもないけど、バージョンアップして無くても作れるよーということで。 CS4は持ってないから分かりませんが、当然問題無いでしょう。

TextFieldの横幅を取得

ActionScript2/ActionScript3 テキストフィールド(TextField)にスクリプトから文字を挿入したときに、テキストフィールドの横幅を文字幅きっちりに合わせるには「TextField.autoSize」を指定しておいてから文字を挿入。それできっちり幅が合うので、そのあと幅を取得すれば、文字内容に合ったテキストフィールドの幅が得られる。 テキストフィールドを2つ横に並べて、左側の文字数に応じて、右側のテキストフィールドの位置を可変にしたくて調べたのだけれど、ちょっと見つけるのに時間がかかっちゃった。 最初は文字を挿入したあとに、幅をきっちり合わせるメソッドが有るんじゃないかと思って、そこばかり見ていたのですよね。autoSizeはプロパティなので、見落としてた。 分かってみればなんてことないんだけど。