サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

アクションパネルでダブルクォーテーションがエスケープできない

ID: FN0312001 Product: Flash

Platform: MacOS X
Version: MX 2004

1. 現象
MacOS Xで、確認されている現象です。[アクション]パネル中でダブルクォーテーション(")を、円記号(\)によりエスケープすることができません。たとえば、以下のステートメントは、シンタックスエラーになります(図001)。

_str = "\"test\"";

図001■[シンタックスチェック]を行うとシンタックスエラーが発生

2. 原因
円記号(\)が、エスケープ文字として認識されていないようです。ただし、この現象はストリングの引用符が、円記号(\)でエスケープできないだけです。他の特殊文字は、問題なく円記号(\)でエスケープ可能です。また、以下のステートメントは、エスケープする文字がストリングの引用符と異なるので、スクリプトエラーは発生しません。

s1_str = '¥"test¥"';
s2_str = "¥'test¥'";

逆に、ストリングの引用符にシングルクォーテーション(')を用いると、円記号(\)でシングルクォーテーション(')がエスケープできず、シンタックスエラーになります。

s3_str = '¥'test¥'';

3. 対処法
簡単な方法は、ストリングの引用符とエスケープ対象の文字を違えることでしょう。つまり、ストリング中にダブルクォーテーション(")を含めたいときは、引用符としてシングルクォーテーション(')を用います。これなら、エスケープの必要もありません(図002)。

図002■ストリングの引用符にシングルクォーテーションを使用

どうしてもストリングの引用符にダブルクォーテーション(")を使ったうえでダブルクォーテーション(")をエスケープしたいときには、エスケープ文字としてバックスラッシュを用います(図003)。

図003■[文字パレット]を使ってエスケープ文字としてバックスラッシュを入力

_____

作成者: 野中文雄
作成日: 2003年12月24日


Copyright © 2001-2004 Fumio Nonaka.  All rights reserved.