avatar
Today is събота
04.09.2010

Резултати от търсенето Категория: Flex tips&tricks

04.06.2010

Flex 4: Application.application -> FlexGlobals.topLevelApplication

от admin — Категории: Flex, Flex tips&tricksНяма коментари

Ако сте свикнали във Flex 3 да ползвате

Application.application

вече кода е

FlexGlobals.topLevelApplication

22.05.2010

Flex component lifecycle

от admin — Категории: Flex, Flex tips&tricksНяма коментари

Ако се чудите от къде да намерите добре обяснен component lifecycle за Flex SDK 3/4, може да изгледате следното клипче :
http://weblog.mrinalwadhwa.com/2009/02/17/understanding-the-flex-component-lifecycle/
От 2008-ма е, но е обяснено много добре.

07.04.2009

MMORPG + Flex/Flash Player от Adobe Edge

от admin — Категории: Flex, Flex tips&tricksНяма коментари

Adobe са пуснали интересна статия, свързана с MMORPG игрите и Flex.
СТАТИЯТА
Пише интересни неща и се препоръчва electro-server за сървърното решение на играта.

Лично аз се бях мъчил да напиша подобие на Socket Server, но не е толкова лесно, колкото изглежда, особено ако не се занимаваш с такъв вид програмиране или пък още по-малко с JAVA.
Освен JAVA, за Socket Server може да се ползва и PHP, C++, C#, Python, но за сега повечето готови комерсиални сървари са писани на JAVA.
А за тези, които ще попитат какво е това Socket Server -> това е сървърът, чрез който дадено флаш приложение става „multiplayer“ -> чатове, игри и т.н.
Препратки :
Wiki->Socket Server

02.04.2009

Оправяне на кирилицата с AMFPHP

от admin — Категории: Flex, Flex tips&tricksНяма коментари

Ако сте пробвали да пращатe през Flex нещо на кирилица, ползвайки AMFPHP, със сигурност сте се натъкнали на гаден проблем. Кирилицата не се изобразява!

Всичко се оправя, като в gateway.php в AMF папката на 127ми ред смените

127
$gateway->setCharsetHandler(каквото и да има тук);

със

127
$gateway->setCharsetHandler("iconv", "UTF-8", "UTF-8");

или енкодинг подходящ за вашата база данни.

27.03.2009

AMFPHP + Flex – хубав начин за връзка към PHP

от admin — Категории: Flex, Flex tips&tricksНяма коментари

На скоро ми се наложи да използвам AMF формата, за да прехвърлям данни от Flex към PHP към DataBase и октрих, че с AMFPHP всичко става по-лесно, по-бързо (и като писане и като прехвърляне на данни)
Може да прочетете тук : AMFPHP SITE по-обстойна информация какво представлява.

Ето и прост пример как да си нагласите AMFPHP-то и да тествате :
1.Изтеглете нужните файлове от сайта и разархивирайте.Трябва да имате папка amfphp и вътре services, etc.

2.Сложете цялата папка в директорията на локалния хост.

3.Връзката от FLex към AMFPHP ще се прави чрез gateway.php !

4.Отворете папката services и създайте нов PHP файл със следното съдържание :

<?php
class AMFTestService {
	public function __construct() { 
			define("MySQL_HOST", "localhost"); // server
			define("MySQL_USER", "user"); // user
			define("MySQL_PASS", "pass"); // pass	
			define("MySQL_BASE", "database"); //database
			$db=@mysql_connect(MySQL_HOST, MySQL_USER, MySQL_PASS);  // connectiong
			@mysql_query("set names utf8", $db); // za kirilicata ako prai problemi
			@mysql_select_db(MySQL_BASE); // selektirane na bazata danni
	}
 
	//pomo6tna funkciq, vru6ta masiv ot obekti za po-lesna obrabotka vuv flex
	private function _handleQuery($query)
	{
		$res = mysql_query($query)or die(mysql_error());
		$ret = array();
		while($obj = mysql_fetch_object($res)){  
            $ret[]  = $obj;  
        }
		return $ret;
	}
 
	//funkciqta, koqto se vika ot Flex
	function getSomeInfo()
	{
		$query = "SELECT pole FROM bazadanni";
		return $this->_handleQuery($query);
	}
}
?>

Както виждате това е PHP Class със следните методи :
__construct() -> конструктор метода на класа. В него се прави връзка към базата данни ( препоръчително ). Този метод се изпълнява всеки път когато се вика този клас.

private function _handleQuery($query) -> Функцията обработва заявката и връща масив от обекти, които във Flex директно се слагат във ArrayCollection.
Хубаво е да се използва, ако чрез заявката ще вземете някаква информация без да правите проверки и т.н.

function getSomeInfo() -> Тази функция се вика директно от Flex и връща директно във Flex масивът със обекти от базата данни ! Няма нужда да си цапате ръцете с XML ! Директно викане от Flex и взимане на променливи от Flex.

Следва да настроим клиента!
Създайте си нов Flex проект и сложете следният код, който е добре коментиран :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
	initialize="init()">
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.collections.ArrayCollection;
 
			// v tazi promenliva zadavame putq do gateway.php failyt, koito sluji za vruzka !
			private var AMFGatewayLocation:String = "http://localhost/amfphp/gateway.php";
 
			//promenlivate gateway 6te sudurja obekt NetConnection,
			//chrez koito shte se osy6testvqva vikaneto i svurzvaneto s AMFPHP
			private var gateway:NetConnection;
 
			// normalen ArrayCollection, koito 6te sluji za DataProvider na DataGrid componenta
			[Bindable]
			private var dp:ArrayCollection;
 
			//init funkciqta, koqto se izvikva pri startirane na prilojenieto
			private function init():void
			{
				gateway = new NetConnection(); // suzdavame nova instanciq na NetConnection()
				gateway.objectEncoding = ObjectEncoding.AMF3; //tuk kazvame objectEncoding-a da e vuv AMF vid. Ne e zaduljitelno, no e preporu4itelno
				gateway.connect(AMFGatewayLocation);	// polzvame metoda connect() s parametur putq do gateway.php
				//vsi4ko e gotovo ! vurzani sme kym AMFPHP-to
			}			
 
			//click event handler na butona
			//izvikvame call metoda na NetConnection obekta
			private function callAMF(e:MouseEvent):void
			{
				gateway.call("AMFTestService.getSomeInfo",
							  new Responder(onResult,onFault));
 
				/*
				 * purviqt parametur e imeto na klasa, posledvan ot to4ka i imeto na funkciqta, koqto iskame da izvikame
				 * vtoriqt parametur predstavlqva nov Responder obekt ili nakratko -> onResult e pri rezultat, onFault e ako e vuzniknala gre6ka
				 * tretiqt parametur ( ne e vuveden ) predstavlqva syotvetno parametrite, koito se pra6tat kym AMFPHP, ako ima takiva
				 Primer :
 
				 ako imame v AMF Class-a funkciq :
 
				 function updateUser($id,$username)
				 {
				 	$query = "UPDATE users SET username ='$username' WHERE id = '$id';
				 	$res = mysql_query($query);
				 	if($res) return true; else return false;
				 }
 
				 to togava call metoda 6te izglejda taka :
				 gateway.call("AMFTestService.getSomeInfo",
							  new Responder(onResult,onFault),
							  idInput.text,
							  userNameInput.text);
				kudeto idInput i userNameInput sa fiktivni poleta
				 */
			}
			// funkciqta, koqto se izpylnqva pri vurnat rezultat ot klasa
			private function onResult(data : Array):void
			{
				dp = new ArrayCollection(data);
				//suzdavame nov ArrayCollection sus vurnatiqt masiv
				//dp-to e vurzano kym DataGrid-a, a dataField poletata nosqt su6tite imena kato imenata na poletata v bazata danni !
				//udobno, nali :)
			}
			//ako vuznikne gre6ka, 6te ni signalizira
			//preporu4vam vi vinagi da polzvate tozi sintaksis na funkciqta za gre6ka :
			private function onFault(fault : Object):void
			{
				Alert.show(fault.description);
			}
		]]>
	</mx:Script>
	<mx:ApplicationControlBar dock="true" width="100%">
		<mx:Button label="Call" click="callAMF(event)" />
	</mx:ApplicationControlBar>
	<mx:DataGrid dataProvider="{dp}" width="100%" height="100%">
		<mx:columns>
			<mx:DataGridColumn dataField="someFieldName"  />
		</mx:columns>
	</mx:DataGrid>
</mx:Application>

Това е всичко за тази публикация. Нататък ще пускам и други хитрини за AMFPHP!

18.02.2009

Пращане на дата от Flex към PHP Script

от admin — Категории: Flex, Flex tips&tricks4 Коментара

Най-простият начин :

Да приемем, че скрипта се намира в localhost и се казва script.php.
Flex-a представлява TextInput поле с id myText, бутон със click event -> send(event) и httpservice деклариран по следният начин :

1
2
3
4
5
6
<mx:HTTPService 
id="phpRequest" 
resultFormat="text" 
url="http://localhost/script.php"
result="onResult(event)"
fault="onFault(event)">

Целта е да пратим написаното в myText до PHP.
Имаме следният код :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private function send(e:MouseEvent):void
{
  var sendObject:Object = new Object(); // pravim obekt
  sendObject.textZaPrashtane = myText.text; // pravim promenliva na tozi obekt na ime textZaPrashtane i sus stoinost myText.text
  phpRequest.send(sendObject); // prashtame kym scripta
}
 
private function onResult(e:flash.rpc.ResultEvent):void
{
 Alert.show(e.result.toString());
}
 
private function onFault(e:flash.rpc.FaultEvent):void
{
 // pri greshka
}

И съответният PHP скрипт :

1
2
3
4
<?php
$promenliva = $_POST['textZaPrashtane'];
echo $promenliva;
?>

Ако искате да пращате още неща към PHP-то, начинът е : sendObject.oshteNeshto = „oshte nesheto za prasthane“ и така колкото искате.

13.02.2009

Видео уроци за Flex

от admin — Категории: Flex, Flex tips&tricksНяма коментари

Може да гледате видео уроци правени от мен, свързани с Flex на Video Tutorials .
Надявам се да ви харесва, а ако правя нещо интересно ще го качвам като обяснение и тук.

07.02.2009

Flex Upload със филтър за файловете – PHP + FileReference, FileFilter Classes .

от admin — Категории: Flex, Flex tips&tricks4 Коментара

Как да си направим по-различен ъплоад от нормалните HTML форми ? И как да го направим по-сигурен ?
Ползваме нещо по-интерактивно. Flash или Flex или Silverlight или други RIA технологии.
Сега ще публикувам примерен код за ъплоад направен във Flex, а след това ще публикувам и такъв, направен във Flash. ( Silverlight, за сега няма да има ).
ДЕМО СЪС SOURCE CODE ( десен клик -> view source )
Целият source код е коментиран и съм обяснил където каквото трябва.
Може да забележите FileFilter-a, който позволява посочване само на .jpg разширение.Това спомага за сигурността ( естествено е препоръчително след това да се прави и проверка в сървърния език ).

Ако има въпроси ги задавайте в коментарите.

Ако имате опит в четенето на документацията от Adobe : FileReference , FileFilter то това ще ви е достатъчно.

Относно PHP скрипта, ползвам това :

1
2
3
4
5
$res = move_uploaded_file($_FILES['File']['tmp_name'],$dir . $_FILES["File"]["name"]);
if($res) 
	echo "Uspeh ot scripta";
else
	echo"Greshka";

П.С. Всичко качено се трие на момента.

03.02.2009

Как да ползваме Alert class-a в Adobe Flex Builder 3.

от admin — Категории: Flex, Flex tips&tricksНяма коментари

Чрез Alert class-a може да изкарваме PopUp прозорче, чрез което може да изпишем обикновенно съобщение или да попитаме потребителя за потвърждение на неговото действие.
Всичко това става много лесно и ще ви покажа как :
Това представлява статичния метод на Alert със всичките му параметри, чрез който се изкарва PopUp прозорчето:

show(text:String = "", title:String = "", flags:uint = 0x4, parent:Sprite = null, 
closeHandler:Function = null, iconClass:Class = null, defaultButtonFlag:uint = 0x4)

Подробно обяснение на параметрите :
text:String = „“: Това представлява главното съобщение, което се изписва в прозорчето.
title:String = „“ :Това представлява title текста, който се изписва в горния ляв ъгъл на прозорчето.
flags:uint = 0×4: Флаговите параметри, биват : Alert.OK, Alert.CANCEL, Alert.YES, Alert.NO. Разделят се с побитово или ( “ | “ ). Колкото от тях се придадат като параметър, толкова бутони ще излязат в Alert прозореца. Независимо в какъв ред ще ги напишете, бутоните винаги излизат в следният ред : OK, Yes, No, Cancel.( Вижте в кода на демото тяхната употреба )
parent:Sprite (default = null) : Това е displayObject-a, в който Прозорчето да се центрира. Оставено на null ще се центрира по средата на екрана.
closeHandler:Function (default = null) :Това е функцията, която се извиква след натискането/затварянето на Alert PopUp-a. Ползва се най-често за проверка на потвърждението от потребителя.
iconClass:Class :Този параметър отговаря за иконката, която се появява до текста в Alert-a. ( Вижте в кода на демото как се използва, чрез [Embed] metatag )
defaultButtonFlag:uint : Същото като flags, но този път който бутон придадете за параметър, той ще е маркиран и при натискане на Enter ще се натиска.
Демо със соурс код ! ( десен клик, view source )

Връзки :
Adobe lang ref

© 2010 Rado's blog All rights reserved - Wallow theme by TwoBeers Crew - Powered by WordPress - Забавлявайте се!