複数行コメントマクロを書いた

1行コメント(//)のマクロは見つかったのだけど、複数行(/*)のは見つからなかったので、他のマクロを参考にして書いてみた。

1行コメントのショートカットを「Ctrl+Q」、複数行コメントを「Ctrl+Shit+Q」に割り当てればFlashDevelop風に!

var commentBegin = document.Config.Highlight.CommentBegin;
var commentEnd = document.Config.Highlight.CommentEnd;

Window.Redraw = false;
var startX = document.selection.GetTopPointX(eePosLogical);
var startY = document.selection.GetTopPointY(eePosLogical);
var selectionText = document.selection.Text;
var selectionTextCommentBegin = selectionText.substr(0, commentBegin.length);
var selectionTextCommentEnd = selectionText.substr(selectionText.length - commentEnd.length, commentEnd.length);
var newText;
if(selectionTextCommentBegin == commentBegin && selectionTextCommentEnd == commentEnd)
{
	//コメント削除
	newText = selectionText.substring(commentBegin.length, selectionText.length - commentEnd.length);
}
else
{
	//コメントつける
	newText = commentBegin + selectionText + commentEnd;
}
document.selection.Text = newText;
var endX = document.selection.GetTopPointX(eePosLogical);
var endY = document.selection.GetTopPointY(eePosLogical);
//再選択
document.selection.SetActivePoint(eePosLogical, startX, startY, false);
document.selection.SetActivePoint(eePosLogical, endX, endY, true);
Window.Redraw = true;

これを、ToggleBlockComment.jseeとか名前つけて保存。
動作は保証しませんがご自由にどうぞ。

FlashでDesireにAndroid書き出し。はまったとこメモ

基本これ通りにやってみたけど、いろいろとひっかかったのでメモっとく。


まず環境変数設定でひっかかった。「C:\android-sdk-windows\tools」ここにadbがないみたい。SDKのバージョンが違うのが原因なのだろうか??
結局、「C:\android-sdk-windows\platform-tools」。ここにadb.exeがあったので環境変数のパスはここにした。


次に、Android SDK をインストールは成功したのだけれど、「usb_driver」ってフォルダが見つからない。。。
でもこれは、ちゃんと書いてあった。
先にFlashのExtensionをインストールしてしまったので、こっちにできてた。

USBドライバは、このExtensionをインストールすると、Flash CS5をインストールしたフォルダ下の「Android_Drivers」フォルダ内に作られます。

(この説明は残念ながら後から気がついた。。。)


結局、Android SDKマネージャーから、「Google Usb Driver pakege, revision4」てのを入れたら、それでなんとか先に進んだ。できたフォルダは、「C:\android-sdk-windows\google-usb_driver」。


手元にあるDesireのデバイスインスタンスパスとやらがちょっと違ったので書き換えてみた。これは参考ページのままでもいいのかも??未確認。

; HTC Desire
%SingleAdbInterface%        = USB_Install, USB\VID_0BB4&PID_0CA2
%CompositeAdbInterface%     = USB_Install, USB\VID_0BB4&PID_0CA2&MI_01


そしてここでもひっかかった。自分のマシンはWindows7の64ビットなので、[Google.NTx86]じゃなくて、[Google.NTamd64]にDesireの設定を書くのでした。


ここまで来てようやくドライバのインストールに成功!

あとは記事のとおりに進んで無事にDesire実機でFlashが動いた!
まあAir上だけどね。でもうれしいね。

Flash で CSS 使うときのテンプレ

import flash.display.*;
import flash.filters.*;
import flash.text.*;

			//スタイルシート
			var styleSheet:StyleSheet = new StyleSheet();
			var normalStyle:Object = 
			{
				color          : "#000000",
				fontFamily     : "_ゴシック",
				fontSize       : 14,
				fontWeight     : "normal",
				leading        : 3,
				textDecoration : "underline"
			};
			//オーバーで色変える
			var overStyle:Object = 
			{
				color          : "#999999"
			};
			styleSheet.setStyle("a", normalStyle);
			styleSheet.setStyle("a:hover", overStyle);
			
			//テキストの生成
			var textField:TextField = new TextField();
			textField.autoSize = TextFieldAutoSize.LEFT;
			textField.selectable = true;
			textField.filters = [new ColorMatrixFilter()];	 // 透明処理対応(空フィルタ掛けておく)
			textField.multiline = false;
			textField.htmlText = "<a href='test.html' target='_blank'>テスト</a>";
			textField.styleSheet = styleSheet;
			addChild(textField);	

getDefinitionByNameはフルパスで書こう

getDefinitionByNameでクラス名を文字列で指定することができる。
自前のクラスを定義したいときは、パッケージ名からフルパスで書く!!
クラス名だけだと「変数〜は定義されていません。」と怒られる。
もちろんインポートもしておくこと。

import flash.utils.getDefinitionByName;
import yoshidam.test;

var className:Class = getDefinitionByName("yoshidam.test") as Class;
var menu = new className();

現在のシーンのDataHolderを1行で取得する

dataHolder.data を XMLList にしてから xmlToObject で Object にすると扱いやすい。

AS

var test:String = jp.nium.utils.XMLUtil.xmlToObject(XMLList(manager.current.dataHolder.data))["test"];

XMLPRML

<?xml version="1.0" encoding="utf-8"?>
<prml version="2.0.0" type="text/prml.plain">
	<scene name="scene1" cls="jp.progression.scenes.SceneObject" title="シーン">
		<test>てすと</test>
	</scene>
</prml>


参考:[AS3]Progression4でPRML形式のXMLを読み込み動的にシーン作成+シーンごとにデータをもたせる « きんくまデザイン

「Error: NiumError #022: 識別子 xxxx は既に使用されています。」の対策

CastSpriteなどのidプロパティを上書き(?)しようとするとエラー。

idにnullを入れてリセットしてから再度設定する。
インスタンスを削除するとき(まえ)に、idもnullにする!!

SWF認証の設定手順

SWF認証をオンにする方法

1、Application.xmlを編集する

↓Application.xmlの場所(XPで普通にインストールした場合)
C:\Program Files\Adobe\Flash Media Server 3.5\conf\_defaultRoot_\_defaultVHost_\Application.xml

<SWFVerification enabled="false">

を↓trueにする

<SWFVerification enabled="true">

2、認証用SWFを入れるフォルダーを作る

↓FMSをインストールしたフォルダーの直下に「SWFs」という名前のフォルダーを作る。
C:\Program Files\Adobe\Flash Media Server 3.5\SWFs

3、認証用SWFを入れて、FMSを再起動する!

完了


参考:19.swf検証(swf verification)について