// Created at 27/2/2011 2:14AM
// by littleshell
package com.blogspot.littleshellMultimedia {
import flash.display.Sprite;
import flash.display.Graphics;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.events.MouseEvent;
[SWF(backgroundColor = "0xFFFFFF", width = "120", height = "90")]
public class HelloWorld extends Sprite {
public function HelloWorld() {
var _homeButton:Sprite = makeButton();
_homeButton.buttonMode = true;
_homeButton.addEventListener(MouseEvent.CLICK, homeButton_click);
addChild(_homeButton);
trace(getMessage());
}
//visit Syntax Highlighter's homepage
public function gotoSyntaxHighlighterWebsite():void {
var _uq:URLRequest = new URLRequest("http://alexgorbatchev.com/SyntaxHighlighter/");
navigateToURL(_uq);
}
//return the contents of this post
private function getMessage():String {
var _myMessage:String = "";
_myMessage += "各位好~ 寫了兩篇, 發現要在blogger 落script 異常困難";
_myMessage += "不過昨天小弟找到了解決的方案!!就是Syntax Highlighter !!";
_myMessage += "以後可以貼出像樣的code 了~ :D";
_myMessage += "呢篇野唔知有幾多人識睇呢";
return _myMessage;
}
private function makeButton():Sprite {
var _b:Sprite = new Sprite();
var _g:Graphics = _b.graphics;
_g.beginFill(0xFFCCFF);
_g.drawRect(0, 0, 32, 32);
_g.endFill();
return _b;
}
private function homeButton_click(e:MouseEvent):void {
gotoSyntaxHighlighterWebsite();
}
}
}
BloggerAds廣告
相關文章
loading..
2011年2月27日 星期日
Syntax Highlighter
標籤:
CSS
2011年2月24日 星期四
解決 AS2 Sound class 不能獨立調整聲音問題
暫時這blog 都未有人流, 小弟暫且假設到我blog 的人對AS都有認識
若各下真的看不懂的話歡迎私底下和小弟聯絡
不知道這個問題是否很多人都懂解決
沒所謂了,還是分享一下,也許對一些人會有幫助
請看看以下的code:
如果我按下了btnBGSoundSwitcher將會發生甚麼事呢??
我猜大家都會覺得只餘下effectSound 會在響吧
不過對不起, 大家都錯了
結果是兩個聲都會一塊兒消失
AS2裡的Sound class 確實是很麻煩
根據文檔, Sound.setVolume()這個 method 是一個instance method
那就是說, 這個method 理論上是對Sound class 的instance生效
可是不知怎的這個 method 會對全世界的Sound instance 生效
解決方法就是用channel 的概念 --- 每個聲源都由獨立的聲軌負責
Sound class的constructor帶一個參數 -- target:Object
不過另一個問題出現
他說是Object, 小弟今天測試過是不行的
一定要是MovieClip
嗚.....這樣要寫個SoundChannel class 就好煩了
既然要用MovieClip
那就是說我現在有兩個channel -- 一個播音樂, 一個播音效
就要用兩個MovieClip了
其實....AS2 裡我不太喜歡好段段開粒不是用來display 的MovieClip
改寫頭8行:
再試試~
只餘下聲效了:D
若各下真的看不懂的話歡迎私底下和小弟聯絡
不知道這個問題是否很多人都懂解決
沒所謂了,還是分享一下,也許對一些人會有幫助
請看看以下的code:
| var withBGSound:Boolean = true; var withEffectSound:Boolean = true; var bgSound:Sound = new Sound(); //background music var effectSound:Sound = new Sound(); //sound effect init(); function init():Void { bgSound.attachSound("bg_sound"); bgSound.start(0, 9999); btnBGSoundSwitcher.onRelease = btnBGSoundSwitcher_onRelease; btnEffectSoundSwitcher.onRelease = btnEffectSoundSwitcher_onRelease; } //do somthing then play the effect sound function shoot():Void { //do somthing if(withEffectSound){ effectSound.attachSound("bomb_sound"); effectSound.start(0, 1); } } //onRelease handler for btnBGSoundSwitcher, used to switch on/off the background music function btnBGSoundSwitcher_onRelease():Void { if (withBGSound) { withBGSound = false; bgSound.setVolume(0); }else { withBGSound = true; bgSound.setVolume(100); } } //onRelease handler for btnEffectSoundSwitcher, used to switch on/off the effect sound function btnEffectSoundSwitcher_onRelease():Void { if (withBGSound) { withBGSound = false; bgSound.setVolume(0); }else { withBGSound = true; bgSound.setVolume(100); } } |
我猜大家都會覺得只餘下effectSound 會在響吧
不過對不起, 大家都錯了
結果是兩個聲都會一塊兒消失
AS2裡的Sound class 確實是很麻煩
根據文檔, Sound.setVolume()這個 method 是一個instance method
那就是說, 這個method 理論上是對Sound class 的instance生效
可是不知怎的這個 method 會對全世界的Sound instance 生效
解決方法就是用channel 的概念 --- 每個聲源都由獨立的聲軌負責
Sound class的constructor帶一個參數 -- target:Object
不過另一個問題出現
他說是Object, 小弟今天測試過是不行的
一定要是MovieClip
嗚.....這樣要寫個SoundChannel class 就好煩了
既然要用MovieClip
那就是說我現在有兩個channel -- 一個播音樂, 一個播音效
就要用兩個MovieClip了
其實....AS2 裡我不太喜歡好段段開粒不是用來display 的MovieClip
改寫頭8行:
| var withBGSound:Boolean = true; var withEffectSound:Boolean = true; var mcBGSoundChannel:MovieClip = this.createEmptyMovieClip("mcBGSoundChannel", 0); var mcEffectSoundChannel:MovieClip = this.createEmptyMovieClip("mcEffectSoundChannel", 1); var bgSound:Sound = new Sound(mcBGSoundChannel); //background music var effectSound:Sound = new Sound(mcEffectSoundChannel); //sound effect |
再試試~
只餘下聲效了:D
標籤:
AS2
2011年2月16日 星期三
在ActionScript裡防止以Cheat Engine 修改數值
上年一個專案中客戶竟然想到要用Cheat Engine 來試
結果數值事無忌憚地被修改
煩擾了一星期總算有點微目,小弟在這裡分享一下
是次的測試環境為:
Windows XP SP3
Flash CS3 ActionScript 3 FlashPlayer 9
Cheat Engine 5.5
我們要測試的是myNum這個數
我用最正路的方法define myNum, 並以一個textField 來顯示
做了一個button來改變myNum:
遺憾地
這個寫法小弟只用了三次高階搜尋就能找出並鎖住myNum了
那解決方法呢??
其實不難
我的做法就是把myNum塞進object 就可以了:
同樣, Cheat Engine 三次高階搜尋就能找出myNum的值, 不過已經鎖不住myNum了~ : D
小弟亦以2bytes 及4bytes低階搜尋測試, 前者結果一樣, 後者五十多個怪怪的result, 改不了
有朋友或者會問, AS2 呢??
這個很有趣
我把profile 調成ActionScript2 FlashPlayer 8
並以下面的code 測試
結果不論高階或是低階, 2bytes 或4bytes , 也都搜尋不到myNum
因為AS2對數字只有Number可用, 是個浮點數 , 故小弟還測試過以Float truncated搜尋, 結果一樣都是搜尋不到myNum
若然各位高手有破解之法或更好的預防方法, 還望賜教
結果數值事無忌憚地被修改
煩擾了一星期總算有點微目,小弟在這裡分享一下
是次的測試環境為:
Windows XP SP3
Flash CS3 ActionScript 3 FlashPlayer 9
Cheat Engine 5.5
我們要測試的是myNum這個數
我用最正路的方法define myNum, 並以一個textField 來顯示
做了一個button來改變myNum:
| var txtDisplay:TextField = new TextField(); var storage:Object = new Object(); var myNum:int = 0; txtDisplay.autoSize = TextFieldAutoSize.LEFT; txtDisplay.appendText(myNum.toString()); addChild(txtDisplay); btn.addEventListener(MouseEvent.CLICK, btn_click); function btn_click(e:MouseEvent) { myNum++; txtDisplay.text = myNum.toString(); } |
遺憾地
這個寫法小弟只用了三次高階搜尋就能找出並鎖住myNum了
那解決方法呢??
其實不難
我的做法就是把myNum塞進object 就可以了:
| var txtDisplay:TextField = new TextField(); var storage:Object = new Object(); storage.myNum = 0; 就是把myNum塞進一個object裡 txtDisplay.autoSize = TextFieldAutoSize.LEFT; txtDisplay.appendText(storage.myNum.toString()); addChild(txtDisplay); btn.addEventListener(MouseEvent.CLICK, btn_click); function btn_click(e:MouseEvent) { storage.myNum++; txtDisplay.text = storage.myNum.toString(); } |
同樣, Cheat Engine 三次高階搜尋就能找出myNum的值, 不過已經鎖不住myNum了~ : D
小弟亦以2bytes 及4bytes低階搜尋測試, 前者結果一樣, 後者五十多個怪怪的result, 改不了
有朋友或者會問, AS2 呢??
這個很有趣
我把profile 調成ActionScript2 FlashPlayer 8
並以下面的code 測試
| var myNum:Number = 0; var txtDisplay:TextField = this.createTextField("txtDisplay", 0,0,0,0,0); txtDisplay.autoSize = true; txtDisplay.text = myNum.toString(); btn.onRelease = function(){ myNum++; txtDisplay.text = myNum.toString(); } |
因為AS2對數字只有Number可用, 是個浮點數 , 故小弟還測試過以Float truncated搜尋, 結果一樣都是搜尋不到myNum
若然各位高手有破解之法或更好的預防方法, 還望賜教
標籤:
AS2
,
AS3
,
cheat engine
訂閱:
意見
(
Atom
)