顯示具有 AS3 標籤的文章。 顯示所有文章
顯示具有 AS3 標籤的文章。 顯示所有文章

2012年10月12日 星期五

flash call js 居然一定要用localhost才能測試


//用flash IDE測試不出來 要用localhost的方式或是丟到網路上 反正就是要成為網路模式 不能本機測試
import flash.external.ExternalInterface;
stop();

ck_mc.addEventListener(MouseEvent.MOUSE_DOWN, overGameMc);
function overGameMc(e:MouseEvent){

//---確認是否能呼叫外部javascript--ok=>true,之後在執行mouseopen()方法;      
 trace('123');
ExternalInterface.call("cool");

}


        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script language="javascript" >

var flashvars = {};
var params = {};
var attributes = {};

params.allowscriptaccess = "always";
attributes.id = "as3_js";
swfobject.embedSWF("trace.swf", "alt", "450", "450", "10.0.0", false, flashvars, params, attributes);

function cool(){
alert("cool");
}


</script>


<div class="as3">
<div id="alt"></div>
</div>



2011年7月21日 星期四

透明PNG也可以當遮色片(透明區域不遮會不顯示,不透明區域遮到會顯示)

lumos_pic.cacheAsBitmap = true;//被mask的對象要cache
 
//mask區域

lumos_mask.filters = [new BlurFilter(0,0,0)]//給mask加上filter  
 
  //設定mask  
lumos_pic.mask = lumos_mask;

阻斷mouse事件 讓上層就算顯示也不影響下層mouse事件

物件.mouseEnabled = false;
物件.mouseChildren = false;

如再不行
考慮hitArea方式

2011年7月20日 星期三

AS3 跳外部連結navigateToURL

my_btn.addEventListener(MouseEvent.MOUSE_DOWN, opneNewPage);

function opneNewPage(e:MouseEvent){
 
    var targetURL:URLRequest = new URLRequest('http://tw.yahoo.com');
navigateToURL(targetURL , "_Blank");
}

2011年7月19日 星期二

BitmapData移動也可以平滑

//##bg就是要使用的MOVIECLIP或物件 什麼鬼loder之類的
var bitmap:BitmapData=new BitmapData(bg.width, bg.height);
bm = new Bitmap(bitmap);
bm.pixelSnapping = 'auto';
bm.smoothing = true;

//設定matrix來縮放原圖大小
//var matrix:Matrix = new Matrix();
//等比縮放
//var scale:Number = p_width / _ldr.content.width;
//matrix.scale(scale, scale);
//強致縮放
//var scaleX:Number = p_width / _ldr.content.width;
//var scaleY:Number = 44 / _ldr.content.height;
//matrix.scale(scaleX, scaleY);


//畫出來
//bitmap.draw(_ldr,matrix);
bitmap.draw(bg);
addChild(bm);

2011年6月23日 星期四

for永遠記不住

for (var i:Number = 1; i < 13; i++ ) {
trace(i);
}

這樣最後是12


for (var ix:Number = 12; ix > 0 ; ix-- ) {
trace(ix);
}

這樣最後是1

this['物件名' + '數字']

var puzzle_1:MovieClip=new MovieClip();

this['puzzle_' + '1'] //這樣即可取得該物件

this['物件名' + '數字']

2010年3月28日 星期日

輸入文字到php上要斷行

原來不是在as3的輸入文字上作設定
只要輸入文字是多行

傳到php時 記得要nl2br呀
怎麼可以忘記最初的基本呢?

2010年3月27日 星期六

AS3 輸入EMAIL格式檢查

var email:String='linxxxxx@gmail.com';
var emailExp:RegExp=/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
trace(emailExp.test(email));

輸入文字多行比對失敗

如果是多行文字,用單行文字比對會失敗(怎麼辦?)
例如多行文字的t1.text是'訊息內容 / Message'
使用
var intext:String='訊息內容 / Message';
開始比對
if (t1.text==intext) {
比對成功
}
但是怎麼比對都失敗
後來發現是因為多行的文字都會多換一行加一個空白(不知道為啥?)
只好使用下面方法,先截取已知文字再進行比對(但總不是個好方法)
e.currentTarget.text=e.currentTarget.text.substring(0,14);(因為訊息內容 / Message是14字)
intext='訊息內容 / Message';
if (t1.text==intext) {
比對成功
}

2010年2月9日 星期二

PNG看的到按的到,看不到按不到(AS3)

用這個吧
InteractivePNG.as

把轉換成MovieClip元件後基底類別改成com.mosesSupposes.bitmap.InteractivePNG

然後若要調整多少可以在InteractivePNG.as找到
protected var _threshold : uint = 0; //改這裡 0是完全透明才按不到

2010年2月4日 星期四

亂數要幾個(從1~5)

var many:Number = Math.floor(Math.random() * 5) + 1;

我永遠會忘記,所以自己記起來

2010年1月25日 星期一

as3 文字 自動斷行

var _text:TextField = new TextField();
_text.text='金融卡交易未登摺次數金融卡交易未登摺次數金融卡交易未登摺次數金融卡交易未登摺次數';
_text.type='dynamic';
_text.autoSize = TextFieldAutoSize.LEFT;
_text.wordWrap=true; //一定要這行呀
_text.width =150;
addChild(_text);

as3滾輪偵聽 判斷上下滾

this.addEventListener(MouseEvent.MOUSE_WHEEL, GoWheel);
function GoWheel(e:MouseEvent):void {
if (e.delta 小於 零){

}else { //向上滾

}
}

//如果是用物件去偵聽 就必須到該物件區域或對該物件按一下 所以用整個區域來偵聽吧

2010年1月21日 星期四

as3漸層遮色片

轉自奶綠作法

1.製作一個物件,取名為_mc
2.製作一個漸層,一邊帶alpha的色塊,並轉成movieClip,取名為mask_mc
3._mc和mask_mc二者的屬性面版,右下方有個User run time caching都要打扣
(如果用程式寫法就要_mc.cacheAsBitmap=mask_mc.cacheAsBitmap=true;)
4.在時間軸上寫程式碼:
AS3:_mc.mask = mask_mc;

感謝奶綠

2010年1月20日 星期三

swfaddress用法

將swfaddress.js放到js資料夾裡

然後在主頁加入下面這一段
<script src="js/swfaddress.js" type="text/javascript"></script>

as裡加入

SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleSWFAddress);

function handleSWFAddress(e:SWFAddressEvent) {
//SWFAddress.setTitle('/kk/');
}

注意 字串一定要用單引號 'xxx' 不能雙引號

然後個按鈕可以這樣用

SWFAddress.setValue('/kk/');

範例程式碼

  1: function btnClick(e:MouseEvent) {
  2:  SWFAddress.setValue('/second/');
  3: }
  4: kk.addEventListener(MouseEvent.MOUSE_DOWN,btnClick);
  5:
  6: // SWFAddress handling
  7: function handleSWFAddress(e:SWFAddressEvent) {
  8:  //SWFAddress.setTitle('/kk/');
  9:  if(e.value=='/second/'){
 10:  gotoAndStop('/second/');
 11:  }
 12: }
 13: SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleSWFAddress);
 14: stop();


p.s有些swfobject版本搭配的話好像會失敗,要用swfaddress2.4裡的cs3裡的swfaddress和swfobject



例如目前測試用flashdevelop new出來的project自動產生的bin裡的js裡的會失敗的樣子?????



自己放在



E:\努力向上\衝向FLASH資料庫\as3手札\全FLASH TOOL

2010年1月14日 星期四

亂數不重複_陣列法

var orgArray:Array = new Array();//原陣列
var newArray:Array = new Array();//新陣列 結果陣列

//先決定全部是多少,也就是要從多少選出來
for (var ni = 0; ni <= 29; ni++) {
orgArray[ni] = 'img/'+(ni + 1)+'.jpg';
}

//選10張出來,並且不重複
for (var xi = 0; xi <= 9; xi++) {
//記錄這次選出的是原陣列的第幾個索引,亂數所引值
var catche:Number = Math.floor(Math.random() * (orgArray.length - 1)) ;
//把選出來的索引移除舊陣列,並儲存在新陣列裡
newArray[xi] = orgArray.splice(catche, 1);

}

trace(newArray);