FlashでAIRを作成していてボタンを押したらツイッターに投稿させようと
思っていたらAS3の罠にはまった。

解決までにかなりの時間をかけてしまったので今後のためにメモひらめき電球

どこで問題が発生しかというと、URLエンコード!
いつも通り escape();でエンコードして使えばOKって思って
動作確認してみたらツイッターに投稿できない。
えーーー。なんかおかしい。

ってことでデコードしてみたら元に戻せない。
なんで???
調べたら神様がいました。

[AS3] URLエンコード
2バイト文字はUTF-8でエンコードしないといけないみたいですね。
そして、escapeはActionScript3.0とActionScript2.0、ActionScript1.0で
動作が違うみたいです。
ActionScript 2.0/1.0のescape()関数は、2バイト文字をUTF-8でエンコードしていました。ActionScript 3.0で文字列をUTF-8でエンコードするには、flash.utils.escapeMultiByte()関数を用います[*1]。
import flash.utils.escapeMultiByte;
var _str:String = escapeMultiByte("F-siteセミナー");
trace(_str); // 出力: F%2Dsite%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC

デコードは、flash.utils.unescapeMultiByte()関数を使います。

無事できました。
ありがとうございます!
$本を買わずに解決するWeb制作の小技-Webサイトのテキスト(文章)を縦書き表示にする方法

前からWebで縦書きは、スタイルシートで縦書きにすることはできたのですが
通常は横書きです。
Internet Explorer5.5以外のブラウザでの表示が保証されないなどの問題があるので
使えませんでした。

しかし、これを解決する方法がでましたビックリマーク
指定した要素を縦書きにすることができます。

ホームページを縦書き化するツール「竹取 JS」
「竹取JS」は、指定されたブロックを縦書き表示に変換する JavaScript です。InternetExplorer5.5 以降に実装されている「writing-mode: tb-rl;」相当の表示を主要ブラウザで再現します。

対応ブラウザ
InternetExplorer5.5+ / Firefox3.5+ / Safari3.2+ / Chrome3.0+ / Opera10.5+
縦書き対象言語
日本語・中国語・韓国語

使い方
<script type="text/javascript" src="taketori.js" charset="UTF-8"></script>
<script type="text/javascript">
//<![CDATA[
(new Taketori()).set({設定項目:値,設定項目:値}).element('縦書き対象要素ID').toVertical(画面の読み込み待ちをするかどうか);
//]]>
</script>

ライセンスはMITライセンスです。


和風のデザインとか旅館などのサイトで文章を縦書き表示をしたくて
画象で対応していた部分もこれで簡単に実現できますね。

HTML5で作成されているWebサイトを最近見るようになってきました。
IEはまだ未対応ですが、HTML5をIEやFirefox2でも使えるようにする方法を使うと
利用できます。

ブラウザで見るだけならいいのですが、これをIEで印刷(プリント)すると
HTML5用のタグが認識せず、レイアウトが崩れたりするようです。

そこで、印刷した時に崩れないようにする解決方法としてJavaScript「IE Print Protector」
が紹介されていたのでメモひらめき電球

IE Print Protector
デモはこちら

これを使うと印刷時にレイアウトを崩れないようにするようです。
JavaScriptのソースを見るとHTML5の新要素のタグをDIVに置き換えているみたいですね。

ここでふと思ったのですが、タグを有効にする「html5.js」だけも大丈夫では?
ってことでデモと同じソースを使って試してみました。
ん・・・。問題なくIEでも印刷できましたあせる

特に問題がなかったのでHTML5でサイトを構築した際には、動作を確認して
IEでレイアウトが崩れるようだったら使いたいと思います!