プロが教える店舗&オフィスのセキュリティ対策術

http://www.newbreed-web.net/blog/?p=70

Flash初心者なので、このコードをどうしたらいいか分かりません。
ちなみに、macOSX、FlashCS4です。
よろしくお願いします。

A 回答 (1件)

「サンプルコードをまねしたい」 のではなくて,


「サンプルコードを使いたい」 ということでしょうね。

しかし,書かれていらしゃるページは,
そのページの上に書かれてありますように,
カテゴリが,

Home > actionscript | flex > yugop.comのテキスト表示がかっこ良いのでまねしてみた

ですよ。
つまり Flash ではなく Flex 用の ActionScript コードのようです。

Flash と Flex は ActionScriptの定義方法 や XMLの定義方法や扱い方がちょっと違うので,
うまく動作しないのではないかと思います。

あと,
なんとか無事に動作させたとしても,かなり汎用性の低い ActionScript だと思います。

そういうわけでかなり問題アリですが,
一応その難アリ状態で動作させる方法を書きます。


Flash CS4 を起動します。

最初に表示されるパネルで
[新規作成] 欄にある [Flash ファイル(AS 3.0)] を選択するか,
もしくは
[ファイル]→[新規]で [Flash ファイル(AS 3.0)] を選択し,
新規ドキュメントを作成します。

[ウィンドウ]→[コンポーネント] にチェックを入れた状態にして,
[コンポーネント]パネル を表示させます。

[コンポーネント]パネル の中の [User Interface] ツリーを展開して,
[TextInput]コンポーネント を選択し,
ステージ上に2回ドラッグ&ドロップして,
2コの [TextInput]コンポーネント をステージ上に適当に配置します。

[ウィンドウ]→[プロパティ] にチェックを入れた状態にして,
[プロパティ]パネル を表示させます。

2コの [TextInput]コンポーネント のうち1つを選択した状態で,
[プロパティ]パネル の <インスタンス名> となっている欄に,
input_textinput という文字列を記入します。
これで [TextInput]コンポーネント のうち1つには,
「input_textinput」 というインスタンス名が付いたことになります。

2コの [TextInput]コンポーネント のうちもう1つを選択した状態で,
[プロパティ]パネル の <インスタンス名> となっている欄に,今度は
display_textinput という文字列を記入します。
これで [TextInput]コンポーネント のうち1つには,
「display_textinput」 というインスタンス名が付いたことになります。

[ウィンドウ]→[コンポーネントインスペクタ] にチェックを入れた状態にして,
[コンポーネントインスペクタ]パネル を表示させます。

2コの [TextInput]コンポーネント のうち
最初に「input_textinput」 というインスタンス名を付けた方を選択して,
[コンポーネントインスペクタ]パネル の [パラメータ]タブ にある [text] という欄の右の空欄に
たとえば
abcdefghijklmn
と記入します。

ここまでで構造物の作成は一応終わりです。
次にスクリプトコードの記述に入ります。

ステージ下にある [タイムライン] を表示させます。

今のところ1レイヤー1フレームしかないと思うので,
レイヤーを1つ増やして2レイヤーにします。

その増やした方の空白キーフレームを選択した状態で,
[ウィンドウ]→[アクション] にチェックを入れた状態にして,
[アクション]パネル を表示させ,
とりあえず書かれていらっしゃるページのスクリプトコードを
[アクション]パネル にコピペで貼り付けます。

これで [アクション]パネル には,
 public var char_codes:Object = new Object();
 public var stack:Object = new Object();
   …略…
  before_text = display_text;
  display_textinput.text = display_text;//mxmlのTextInputへ
 }
のようなものが記入されている状態になります。

[アクション]パネル の上の縁にある
虫眼鏡A のアイコンボタン(検索ボタン) をクリックして,
検索文字列(N) の欄に [public ] を記入します。

置換(W) の欄はそのまま空欄にしておいて,
[すべて置換(A)] ボタンをクリックします。

これでスクリプト中の [public ] が全て消えます。

そして,その長いスクリプトの最後の行に,
-----------
change();
-----------
という1行のスクリプトを追加記入します。

これで,定義した関数 change が実行されるようになります。

この状態で [アクション]パネル は,
 var char_codes:Object = new Object();
 var stack:Object = new Object();
    …略…
  before_text=display_text;
  display_textinput.text=display_text;//mxmlのTextInputへ
 }
 change();
のようになっているということになります。

あとは動作検証です。
[制御] → [ムービープレビュー] で動作確認ができると思います。



スクリプトの内容自体(アルゴリズム自体)はよく考えられていて良いとは思うのですけどね。

書かれていらっしゃるページの下にも,

> まだ効率のよい方法がありそうなので、
> 改善点などありましたらご教授願えるとありがたいです。

と書かれてありますように,
これでは汎用性がないというか全く実用的なものではありません。

色々検討&研究して使えるように(使いやすいように)改善してみてください。
    • good
    • 0
この回答へのお礼

大変ご丁寧に説明して頂き、ありがとうございます!
ActionScriptがFlash以外にもあるとは知りませんでした。
BlurFiltanさんのように、惜しげもなく知識を広めてくださる方がいらっしゃるのは、とてもありがたいです!
これからも色々勉強してがんばります。ありがとうございました!

お礼日時:2009/01/16 08:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!