Защита от неплательщиков.

декабря 6, 2007

На волнах фриланса частенько попадаются жадные купцы.
Денежку пожалеют, и разработчику не заплатят.
Особенно озадачивает разработчика сей факт, когда он, наивный, отдал результат работы в жадные купцовы руки.

Лучшая защита – работать только с теми, кто у вас в local-trust )))

Но вот еще небольшая подмога. Класс Permission.
Для работы с ним, конечно понадобиться свой родной домен, на который вы сможете положить скромный crossdomain.xml. В нем укажите доступ для того домена, на котором будет лежать результат вашей работы. Ну а если не знаете где именно, будет лежать разрешайте доступ всем. Хуже не будет.

Далее. Кладем у себя мальнький текстовый файл, в котором будут записаны две переменных allow=1 и message=ЗАПЛАТИ ДЕНЕГ!!!

Пока allow=1 флешка будет работать как положено.
Но как только вам покажется, что денег больше не видать – меняйте allow=0.
Теперь все будут поверх флешки периодически читать ваш душещипательный message.

Конечно, по завершении работ, в случае благополучной оплаты – лучше убрать эту мышеловку из кода, и отправить финальный , стерильный вариант.

Использование:

Просто заводим новый экземпляр Permission и передаем в конструкторе путь к текстовому файлу.

var my_permission:Permission = new Permission("my_domain.net/my_permission.txt");

Код классa: ru.decafe.utils.Permission

/**
* class ru.decafe.utils.Permission
* @author Mikhail Ivanchuk
* @version 0.1
*/
import ru.decafe.utils.Cache;
 
class ru.decafe.utils.Permission {
	private var  theURL:String = "";
	private var accessor:LoadVars;
	private var blinker:Number;
	private var alert_mc:MovieClip;
	private var message:String = "";
 
	public function Permission(url:String) {
		theURL = url;
		accessor = new LoadVars();
	}
	public function loadAccess():Void {
		var refer:Permission = this;
		var _key:String = theURL.indexOf("?")==-1?"?":"&";
		accessor.load(theURL+Cache.disable(_key+"nocache="));
		accessor.onLoad = function (success:Boolean) {
			var mode:String = "demo";
			if (success && this.allow == "1") {
				mode = "allow";
			}
			trace("mode: "+mode+"\n"+this.message);
			if (mode=="demo") {
				refer.message = this.message;
				refer.blinker = setInterval(refer,"alert",10000);
			}
		}
	}
	private function alert():Void {
		alert_mc = _level0.createEmptyMovieClip("alrt",_level0.getNextHighestDepth());
		var txt:TextField = alert_mc.createTextField("txt",0,0,0,150,60);
		txt.background = true;
 
		txt.multiline = true;
		txt.wordWrap = true;
		txt.backgroundColor = 0xDEDEDE;
		txt.border = true;
		txt.borderColor = 0;
		txt.html = true;
		txt.condenseWhite = true;
		txt.htmlText = "
 
<span style="font-family: Arial;">"+message+"
 
";
		alert_mc.counter = 100;
		alert_mc.onEnterFrame = function () {
			this.counter--;
			if (this.counter&lt;0) this.removeMovieClip();
		}
	}
}
</span>

+ Cache.as, который необходим для работы класса Permission: ru.decafe.utils.Cache

Popularity: 9% [?]

Entry Filed under: AS2.0,ActionScript,грабли

2 комментария

  • 1. concretica  |  декабря 6, 2007 at 16:45

    и не забыть заэнкриптить файл

  • 2. murejib  |  декабря 6, 2007 at 18:09

    Ну да. Чтобы от декомпиляторов отгородиться.
    Хотя часто декомпиленный проект не подлежит обратной сборке. Очень многое валится.




МЕТА

Метки

2d 3D ActionScript adobe ae after effects animation animator_at_work AS2.0 AS3.0 astro bones bug bugfix debug deep linking draw drawing extension Flash flash CS4 flex fscommand fx html IK Math mindstream music-video NB opensource security swfaddress TextField traps uafpug useful utils video Новости анимация кинематика кости поток сознания туториал

Календарь

Декабрь 2007
Пн Вт Ср Чт Пт Сб Вс
    Янв »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Архив

Ссылки

Радио