« 2009年06月 | メイン | 2009年08月 »

2009年07月29日

ActionScript3からJavaScript


ActionScript3からJavaScriptの実行

●AS3
--------------------------------------------
import flash.external.ExternalInterface;

ExternalInterface.call("callJavascript","Hello!");
--------------------------------------------


●JavaSript
--------------------------------------------
function callJavascript(str) {
alert(str)
}
--------------------------------------------

注意点、swfファイルをhtmlに貼り付ける際に、
必ずid属性が記述されている必要がある。
これがないとIEでエラーが起きる。

※一部にid属性とname属性が別でなければならないという説もあるが
自分の検証したかぎりid属性があれば問題ないようです。


参考サイト
http://hidekita.sakura.ne.jp/blog/dev/2009/01/flashactionscript30javascript.php
http://hisasann.com/housetect/2008/07/actionscriptas3javascriptexter.html

投稿者 masato : 13:20 | コメント (846)

2009年07月14日

フォームに変更があったかを判定

function isChanged() {

var flg = false;
var arr = document.forms[0].elements;
for(i = 0; i < arr.length; i ++ ) {
var elem = arr[i];
if(elem.type == "text" || elem.type == "textarea") {
if(elem.value != elem.defaultValue) {
flg = true;
break;
}
} else if(elem.type == "checkbox" || elem.type == "radio") {
if(elem.checked != elem.defaultChecked) {
flg = true;
break;
}
} else if(elem.type == "select-one") {
var children = elem.childNodes;
var defaultSelectedFlg = false;
// デフォルト選択状態のものがあるか確認する
for(j = 0; j < children.length; j++ ) {
if(children[j].tagName == 'OPTION') {
if(children[j].defaultSelected) {
defaultSelectedFlg = true;
break;
}
}
}

// デフォルト選択状態のものがあった場合は、それと比較
if(defaultSelectedFlg) {
for(j = 0 ; j < children.length; j++ ) {
if(children[j].tagName == 'OPTION') {
if(children[j].selected != children[j].defaultSelected) {
f = true;
break;
}
}
}
} else {
//デフォルト選択状態以外のものがあった場合は
if(elem.selectedIndex > 0) {
flg = true;
break;
}
}
}
}
return flg;
}

投稿者 masato : 17:03 | コメント (435)

2009年07月03日

addEventListenerで引数を

_btn.addEventListener(MouseEvent.CLICK , clickHandler(mySprite));
function clickHandler(mspr:Sprite):Function{
return function (e:MouseEvent):void{
//クリックされた時の処理
}
}

投稿者 masato : 14:33 | コメント (490)

addEventListenerで引数を

1.
_btn.addEventListener(MouseEvent.CLICK , clickHandler(mySprite));
2.
function clickHandler(mspr:Sprite):Function
3.
{
4.
return function (e:MouseEvent):void
5.
{
6.
//クリックされた時の処理
7.
}
8.
}

投稿者 masato : 14:33 | コメント (942)