AMF Usage

var netConnection:NetConnection = new NetConnection();
var _gateWayStr:String = 'http://blabla.com/gateway.php';
netConnection.connect( _gateWayStr );

var responder:Responder = new Responder(onResult, onFault);

function onResult(responds:Object):void
{
	trace('on result is : ' + responds);
}


var faultStr:String;

function onFault(responds:Object):void
{
	for(var i in responds)
	{
		faultStr += responds[i];
		trace(faultStr);
	}
}

/*
	@param1 	This argument only use connect server class and own method like ClassName.php > (ClassName.classMethod).	
	@param2		This is argument simply use server-side result like if you done right everything responder return the onResult() method In the other case It'll return onFault() method
	@param3 	It's a server-side class method parameters. If class has any argument like classMethod(param1,param2,param3) we have to define those arguments beside the responder argument. 	
*/
netConnection.call('ClassName.classMethod', responder, 'classMethod param1', 'classMethod param2');




Advertisements

as3 getting random chars

var str:String = "abcdefgğuüıilmnoöprs0123456789";
var char:String = "";


function randomChars():String
{
	for (var i:int = 0; i < 8; i++)
	{
		char += str.charAt(Math.random() * str.length);
	}
	
	return char;
}

trace(randomChars().toUpperCase())

Javascript detect support node

Html sayfamızda body’nin onload metoduna init(); olarak initialize ediyoruz. Aynı zamanda body tagının altına bir de box adında bir div oluşturuyoruz. Daha sonra oluşturduğumuz o div üzerinde işlemler yapıyoruz.


	var boxDiv;

	function init()
	{
		boxDiv = document.body.querySelector('#box');
		boxDiv.style.backgroundColor = '#FFCC00';
		boxDiv.style.width = "100px";
		boxDiv.style.height = "100px";
		boxDiv.style.display = 'block';
		boxDiv.addEventListener('click', clickTranslate);

		console.log('Desteklenen node >> ' + getTransformProperty(boxDiv));
	}

	function clickTranslate(event)
	{
		var counter = 0;

		setInterval(function(){
			console.log(counter);
			boxDiv.style.transform = 'rotate(30deg)';
			boxDiv.style['-webkit-transform'] = 'rotate('+(++counter % 360)+'deg)';
			//boxDiv.style.webkitTransform = 'rotate('+counter+'deg)';

		},100);
	}

	// Bu fonksiyon hangi browser'da hangi attributun desteklendiğini belirtir.
	function getTransformProperty(el)
	{
		var properties = ['transform', 'WebkitTransform', 'msTransform','MozTransform', 'OTransform'];

		var property;

		while(property = properties.shift())
		{
			if(typeof el.style[property] != undefined)
			{
				return property;
			}
		}

		return false;
	}



Adobe AIR Debugging on Device and Catch Runtime Errors!

Evet yazıdan da anlışacağı gibi geçenlerde bir blog post’da görmüştüm ama ne işime yaracak diye düşündüğümde nasıl bir gaflete kapılıp böyle bir düşündüm anlamıyorum 🙂 Neyse aşağıdaki snippet bize büyük bir iyilik yapıyor, kullanıcı uygulamamızı ya da oyunumuzda bir hata ile karşılaştığında Adobe AIR Runtime bunları kaydetmemize olanak sağlıyor.

Hatayı kaptığımızda bunu istersek server’a gönderebiliriz. Ama benim tavsiyem verilerin daha elle tutulur bir analizini almak istiyorsanız BugSense reporterını kullanmanız daha iyi olacaktır.

// listen for uncaught errors
YOUR_DOCUMENT_CLASS.loaderInfo.uncaughtErrorEvents.addEventListener( UncaughtErrorEvent.UNCAUGHT_ERROR, handleGlobalErrors, false, 0 );
 
private function handleGlobalErrors( e:UncaughtErrorEvent ):void 
{
    // uygulamanın hiç bir hata mesajı vermemesini sağlıyoruz burada
    e.preventDefault();
    e.stopPropagation();
 
    // error değerini alıyoruz
    // burada benim tavsiyem internet bağlantısı varsa cihazda bu verileri saklayıp server-side data olarak göndermek.
    if( e.error is Error ) {
        var error:Error = e.error as Error;
 
        // trace out the info from the error
        trace( error.name );
        trace( error.message );
        trace( error.getStackTrace() );
    }
}