73Blog

actionscriptでxmlを読み込むときの注意点

flash MX2004(actionscript2.0)でmyXml.load(myXml.xml)した時に、思わぬところに改行が入る事があるので、その回避方法。

<?xml version=”1.0″ encoding=”UTF-8″?>
<story>
<link id=”0″>
テスト1
</link>
<link id=”1″>
〜(以下略)〜
</story>

<>のあとに改行が入ると上手くエレメントを配列に格納できない事がある模様。

<?xml version=”1.0″ encoding=”UTF-8″?>
<story>
<link id=”0″>テスト1</link>
<link id=”1″><a href=”hoge”>テスト2</a></link>
<link id=”2″>テスト3</link>
<link id=”3″>テスト4</link>
</story>

上記のように<>のあとの改行を削除してやれば問題なく表示できる。と思う。

Flash MX 2004でtrick7プリローダを使ってみる

ローディングバーセットを作ったよ:サンプルファイル付き

いつもお世話になっています、trick7さんのローディングバーを使ってみる。
設置も設定も簡単。誰でも簡単に導入できそうです。

なるほどなー。fla作るたびにプリローダ作るのも面倒だし、シンプルでカスタマイズできそうだし、この際勉強のためにも使ってみよう。ということでダウンロード。

早速flaの中身を覗いてみる。なるほどこれなら簡単に導入できそうだ。カスタマイズも簡単そう。よしよし、読み込むファイルを書き換えて、と。書き出し。

**エラー** シーン = シーン 1, レイヤー = レイヤー 1, フレーム = 1 :行 4:onMotionFinished’ という名前のプロパティはありません。
myTween.onMotionFinished = function() {

ActionScript エラー数 :1 報告済みエラー :1

へ?ダウンロードしてflaファイル開いてファイル名変えて書き出しただけだよ?そうか、オレのマシンの設定がおかしいに違いない。ということでいろいろいじる事小1時間。どうにもこうにもエラーが出ます。

Tween.asの中を覗いてみるも、どうやらonMothinFinishedというプロパティはエラーの通りないご様子。
んむむむ。なんじゃこれは。初期設定ファイルが壊れてるのか?などとさらにはまる。

とりあえずググる。

Tweenインスタンスにイベントハンドラを設定するとエラーになる

原因
実際Flash MX 2004のTweenクラスには、Tween.onMotionFinishedを始めとするイベントハンドラが、インスタンスプロパティとして宣言されていません。Flash 8のTweenクラスでは、以下のように(スクリプト002)イベントハンドラがプロパティ宣言されています。

_| ̄|○オレの時間返せ・・・。とうか、明らかなバグを堂々と放っとくなよadobe。この記事が書かれた2005年当時には少なくともバグであるという情報はネット上に流れてたはずで、これを華麗にスルーする辺りがなかなかの殿様商売ぶりです。

気を取り直して記事を読んでみると、どうやら解決法には3通りあるらしい。

[1] Flash 8のTweenクラスと同様に、必要なイベントハンドラを、インスタンスプロパティとして宣言することが考えられます。

[2] Tweenインスタンスを、Objectで型指定する方法がありえます。

[3] 配列アクセス演算子[]を使ってプロパティを指定すると、そのアクセス時にかぎり、型指定のチェックを回避することができます。

なるほど。[1][2]は見出しからしてややこしそうですが、[3]ならなんとかなりそうです。

ということで、とりあえず該当部分を以下のように修正。

import mx.transitions.Tween;
var myTween:Tween;
// …[中略]…
myTween["onMotionFinished"] = function() {
// ステートメント
};

一発で動きました。さすが野中さん。頼りになります。

説明を読むと、根本的な解決にはやはり[1]あたりが良さそうですが、今回のケースではとりあえずオッケーのようです。ありがとうございました。

trick7さんの該当エントリーにもコメント使用かとも思いましたが、みなさん無事動作しているところに2世代前のバージョンで動きませんよなどと水を差すのもアレかと思うので控えます。

そこのググって辿り着いた2世代前のバージョンを使っているあなた。あなたのためになれば幸いです。

という覚え書きの意味も含めたエントリー。

tweenerを使っていろいろと

最近仕事で久しぶり(恥)にactionscriptを触っています。ただし2.0(笑

今回は基本フレームアクションで完結させることを目標に作ったのですが、途中まで作り込むともう後に引けない状態に。きっと後で他人が見ても何のこっちゃ でしょうが、それよりも自分で見て何のこっちゃにならないようにだけは気を付けて、これからこまめにコメントとか入れて整理していこうと思います。

本当ならためになりそうなスクリプトの1つもサンプルとしてアップしたいところですが、あまりにもぐちゃぐちゃコードで自分にしかわかないであろう部分が多すぎるので自重します。

最近ググって出てくる結果にas3が多くなってきたので、さすがに乗り換えないとなと真剣に考える今日この頃です。

ジャズってます。

french

Paris Jazz Big Band - French Jazz Cinquante Numero Deux - French Jazz Quarter 2008Nico Morelli - French Jazz Cinquante (フレンチ・ジャズ・サンカント)

iTSで発見。900円なり。2枚まとめて100曲お買い上げです。まだ聴いてない。

カレンダー

8月 2008
« 7月   9月 »
 123
45678910
11121314151617
18192021222324
25262728293031