Posts Tagged ‘ AIR ’

The serial key generator for Flex / AIR product to licence the RIA Product

http://code.google.com/p/codegenas3/

The project uses MD5 Encryption to generate the serial key, specific to Machine. The Unique key on system basis is generated and respective serial key is verified with the MD5 Checksum. Can be used on Flex / AIR products selling.

Also, uses SharedObject to store the unique System Key

Usage:
import adams.dev.MD5;
var reg:MD5 = new MD5();
reg.registereduser – > status of user registration
reg.skey – > serial key of the end user
reg.setRegKey(reg.skey); – > to enable the product

Note: The project is 3 years older work done by me.

Flex 4 ACE Mock Exam

Glad to release the version 1.0 of FlexACE Mock Exam Application:

The Application is based on our experience of getting ACE Certification.
The application free for download on these links:

Source Link, Android App Link, BlackBerry App Link, Amazon App Link, Desktop AIR Link

Looking forward to your feedback to improve the application Experience.
Best wishes on getting ACE Certification.

Swiz Framework for Mobile Development (Source Example)

Source for Android/ iOS/ Blackberry Mobile App Universal-Currency.
Developed with Flex 4.5.1 SDK and AIR 2.7 SDK

The project does currency conversion, using HTTPService via SwizDAO Framework

Check the code base:

https://github.com/nsdevaraj/Universal-Currency

Move Scroll bar on left side Flex4

I struggled a lot, but fixed it with easy tweak.
s:List Property -> layoutDirection=”rtl”
Note, in case you were using itemRenderer , make the reverse there to avoid arabic right to left effect by :
s:ItemRenderer Property -> layoutDirection=”ltr”

Convert int to String

The AS3 Util Function is posted on the below link
Utility to convert number or integer to String. The util function is useful in many applications.
https://gist.github.com/703108

AIR install problem with MAC PowerPC / Leopard

Windows 2000 and Mac PowerPC are not supported with AIR 2. Users can install and run AIR 1.5 applications, but will not be able to install or update to AIR 2.
Source – http://www.adobe.com/products/air/systemreqs/

The below are the links to be used for MAC – AIR 1.5 installer

http://airdownload.adobe.com/air/mac/download/1.5/AdobeAIR.dmg
http://airdownload.adobe.com/air/mac/download/1.5.3/AdobeAIR.dmg

New Flex 4, Spark Classes to be known

Flex4 Framework
spark.effects.AddAction
spark.effects.Animate
spark.effects.AnimateColor
spark.effects.AnimateFilter
spark.effects.AnimateTransitionShader
spark.effects.AnimateTransform
spark.effects.AnimateTransform3D
spark.effects.animation.Animation

mx.collections.ArrayList
spark.filters.BevelFilter
spark.primitives.BitmapImage
spark.layouts.supportclasses.Block
spark.filters.BlurFilter
spark.components.BorderContainer
spark.effects.easing.Bounce

spark.components.supportclasses.ButtonBarHorizontalLayout
spark.components.supportclasses.ButtonBase
spark.effects.CallAction
spark.components.CheckBox
spark.filters.ColorMatrixFilter
flash.geom.ColorTransform
spark.layouts.ColumnAlign
spark.components.ComboBox
spark.filters.ConvolutionFilter
spark.effects.CrossFade

spark.components.DataRenderer
spark.filters.DisplacementMapFilter

spark.layouts.supportclasses.DropLocation
spark.filters.DropShadowFilter
spark.components.mediaclasses.DynamicStreamingVideoSource
spark.components.mediaclasses.DynamicStreamingVideoItem
spark.effects.easing.Elastic
spark.primitives.Ellipse
spark.effects.Fade
spark.primitives.supportclasses.FilledElement
spark.filters.GlowFilter
spark.filters.GradientBevelFilter
spark.filters.GradientFilter
spark.filters.GradientGlowFilter
spark.primitives.Graphic
spark.primitives.supportclasses.GraphicElement

spark.components.supportclasses.GroupBase

spark.effects.interpolation.HSBInterpolator
spark.components.HScrollBar

spark.components.supportclasses.ItemRenderer
spark.effects.animation.Keyframe

spark.layouts.supportclasses.LayoutBase
spark.primitives.Line
spark.effects.easing.Linear

spark.components.supportclasses.ListBase
spark.core.MaskType
flash.geom.Matrix
flash.geom.Matrix3D
spark.effects.animation.MotionPath
spark.effects.Move
spark.effects.Move3D
spark.effects.interpolation.MultiValueInterpolator
spark.components.mediaclasses.MuteButton
spark.components.NavigatorContent
spark.effects.interpolation.NumberInterpolator

spark.primitives.Path
spark.components.PopUpAnchor
spark.components.PopUpPosition
spark.effects.easing.Power

spark.components.supportclasses.Range
spark.primitives.Rect
spark.primitives.RectangularDropShadow
mx.collections.AsyncListView
spark.effects.RemoveAction
spark.effects.Resize
spark.effects.interpolation.RGBInterpolator
spark.components.RichEditableText
spark.components.RichText
spark.effects.Rotate
spark.effects.Rotate3D
spark.layouts.RowAlign
spark.effects.Scale
spark.effects.Scale3D
spark.components.supportclasses.ScrollBarBase
spark.components.Scroller
spark.components.supportclasses.ScrollerLayout
spark.components.mediaclasses.ScrubBar
spark.effects.SetAction
spark.filters.ShaderFilter
spark.effects.animation.SimpleMotionPath
spark.effects.easing.Sine
spark.components.supportclasses.Skin
spark.components.supportclasses.SkinnableComponent
spark.components.SkinnableContainer
spark.components.supportclasses.SkinnableContainerBase
spark.components.SkinnableDataContainer
spark.components.supportclasses.SkinnableTextBase
spark.components.supportclasses.SliderBase
spark.skins.SparkSkin
spark.components.Spinner
spark.core.SpriteVisualElement
spark.primitives.supportclasses.StrokedElement
spark.components.TabBar

spark.components.supportclasses.TextBase

spark.components.TextSelectionHighlighting
spark.utils.TextUtil
spark.components.TileGroup
spark.layouts.TileLayout
spark.layouts.TileOrientation
spark.effects.animation.Timeline
spark.components.TitleWindow
spark.components.ToggleButton
spark.components.supportclasses.ToggleButtonBase
spark.components.supportclasses.TrackBase
mx.geom.Transform
mx.geom.TransformOffsets
spark.components.VideoDisplay
spark.components.VideoPlayer
spark.components.mediaclasses.VolumeBar
spark.effects.Wipe
mx.collections.XMLListCollection

Special Components
mx.states.AddItems

airframework
spark.components.windowclasses.TitleBar

FTE text for MX components
mx.controls.dataGridclasses.FTEDataGridItemRenderer
mx.controls.MXFTETextInput
mx.controls.advancedDataGridclasses.FTEAdvancedDataGridItemRenderer

Text Layout Framework (TLF)
flashx.textLayout.elements.LinkElement
flashx.textLayout.elements.BreakElement
flashx.textLayout.elements.DivElement
flashx.textLayout.elements.InlineGraphicElement
flashx.textLayout.elements.ParagraphElement
flashx.textLayout.elements.SpanElement
flashx.textLayout.elements.TabElement
flashx.textLayout.elements.TCYElement
flashx.textLayout.elements.TextFlow
flashx.textLayout.formats.TextLayoutFormat


mx.rpc.CallResponder
mx.messaging.channels.HTTPChannel
mx.rpc.remoting.mxml.Operation
mx.messaging.channels.SecureHTTPChannel
mx.messaging.channels.SecureStreamingHTTPChannel
mx.messaging.channels.SecureRTMPChannel
mx.messaging.channels.StreamingHTTPChannel

Flex 3 Graphics
mx.geom.CompoundTransform
mx.graphics.GradientEntry
mx.graphics.LinearGradient
mx.graphics.LinearGradientStroke
mx.graphics.RadialGradient
mx.graphics.RadialGradientStroke
mx.graphics.SolidColor
mx.graphics.SolidColorStroke
mx.graphics.Stroke
mx.geom.Transform

Flex 3 Miscellaneous
mx.logging.targets.MiniDebugTarget
mx.logging.targets.TraceTarget

MXItemRenderer
mx.controls.listclasses.MXItemRenderer
mx.controls.treeclasses.MXTreeItemRenderer
mx.controls.dataGridclasses.MXDataGridItemRenderer
mx.controls.advancedDataGridclasses.MXAdvancedDataGridItemRenderer

Flex 4 ACE Questions

Passed ACE Certification with Flex4.

The differences of Flex3 and Flex 4 certifications
1/ more questions – 59 questions (previously 50)
2/ more time – 90 minutes (previously 60 min) Don’t bother about time factor you will have at least 30 minutes spare time for review.
3/ UI have more share among questions 35 %
4/ In Flex_Exam_Guide – They didn’t mentioned about LCDS, but we got Questions from LCDS too.

Tips:
1/ Do use attest, as it is the only resource we have for mockup
2/ Unlike Attest the questions will be in shuffled order
3/ While you attend ACE, don’t forget to use “Flag for review”, whenever you have doubt on your answer.
4/ The Questionnaire will be different for everyone

The below are some important topics, these areas required to be refreshed before attempting ACE.

LCDS
RemoteObject vs. Webservice vs. HTTPService

Flex3
[RemoteClass],[Bindable] Metadatas,E4X xml query, Labelfunction and Labelfield usage,Custom Event, Producer, consumer, validator,TabNavigator ,viewstack, setStyle, BlendMode, Modules vs. Sub Applications and formatter

OOPS
Interface, Encapsulation, Design patterns, access modifiers, Constructor and getter setters

AIR:
native platform in AIR Application,File management in AIR, Preloader, Drag and Drop in AIR, Security Sandbox in AIR, SQL Lite in AIR, create a Native AIR Application, Badge Installer in AIR

Spark :
working with state, ArrayList vs. Arraycollection, Animate, constraint layout in Spark Components, orientation of Child components,effects, create a custom component, Two-Way Binding, IVisualElement, ItemRenderer, LayoutBase, SkinnableComponent, TextInput, CSS namespace declaration, Descendant ID Type Class CSS types and Group

Record FLV with Screensharing

With AIR 2 Native Process help,  Print.jar helps press PrintScreen and the data from clipboard is used to get Screen Shots  to be written in FLV using FlvWriter.as
The Main Application file used to write FLV using the screen shot images is in this link.

Merge / Combine two ArrayCollections

// ArrayCollection 1
var arrC1:ArrayCollection;
// ArrayCollection 2
var arrC2:ArrayCollection; 
var array1:Array = arrC1.source
var array2:Array = arrC2.source
public function arrayContainsValue(arr:Array, value:Object):Boolean
{
       return (arr.indexOf(value) != -1);
}  
public function createUniqueCopy(a:Array):Array{
       var newArray:Array = new Array();        
       var len:Number = a.length;
       var item:Object;        
       for (var i:uint = 0; i < len; ++i)
       {
               item = a[i];                
               if(arrayContainsValue(newArray, item))
               {
                       continue;
               }
               newArray.push(item);
       }
       return newArray;
}  
var combinedArr:Array = createUniqueCopy(array1.concat(array2) );
var resultArrC:ArrayCollection =new ArrayCollection( combinedArr );

How to Modify SWF without Recompilation

I could n’t access my Laptop last week, but i had some urgent work to do (recompile a old SWF). Here is how i did it.
This post is just a reference and guide based on the Post.
Find the Point which you want to modify using any of the available SWF Decompilers
Decompress the SWF using java.util.zip.DeflaterInputStream : Java Source Code file link
Jar File Download Link
Usage :  java -jar SWFCompress.jar c 'YourSWF.swf'
Download the Nemo440.AIR , to view the hex code.
Notice the exact place of the code to be modified using
The conventions of u30 encrypted Hex code is provided by Adobe.
Download any Free Hex Editors like HxD, to edit the SWF
Find the code part and modify the -decompressed SWF
Compress the decompressed SWF, back to the form, using SWFCompress.jar.
Usage :  java -jar SWFCompress.jar d 'YourSWF.swf'

Now the re compressed SWF is ready to go. Have Fun Cracking, Hacking SWF’s

Project: Swiz DAO

Libraries Used:  Swiz, AS3Signals and FoomongerSwizFramework.
Objective:
To create GenericDAO framework, like IBM Generic DAO (Java /Spring/ Hibernate)
About GenericDAO:
DAO is the Object which manages to perform CRUD Operation and other Common
Operations to be done over a ValueObject ( known as Pojo in Java ).
GenericDAO is a reusable DAO class which can be used generically.
Goal:

In IBM GenericDAO, to add a new DAO, the steps to be done is simply,
  1. Add a valueobject (pojo).
  2. Add a hbm.xml mapping file for the valueobject.
  3. Add the 10-line Spring configuration file for the DAO.
Similarly, in AS3 Project Swiz DAO. We want to attain a similar feet of achievement.
Client Side GenericDAO model:
As we were working on a Client Side language, also we should be managing a persistent object Collection (for every valueObject) .
Usage:
<swiz:Prototype name=”personDAO”
constructorArguments=”{['person',personProcessor]}” type=”{AbstractDAO}”
singleton=”true”/>
Added, How it works in Github: DI Mechanism Link

http://github.com/nsdevaraj/SwizDAO

AIR with Flex4 Compilation Bug

“VerifyError: Error #1014: Class flash.text.engine::TextLine could not be found.” – The Error I got when trying to compile MXML with below configurations:

AIR Beta 2 Runtime, Flex 4 SDK, AIR Beta 2 SDK

Solution :
Open the project folder and edit the “.actionScriptProperties” file
Change the compiled flash swf target runtime from htmlPlayerVersion=”9.0.28″ to htmlPlayerVersion=”10.0.0″.

Also make sure your app.xml namespace to be “http://ns.adobe.com/air/application/2.0beta2&#8243;

Access Client Machine from AIR on Ease

This is a dream come true.
To run an EXE from AIR, do the following steps:
Step 1:
Install the exe from this Link
Step 2:
Import Flex Project samples, from install dir ex: C:\Program Files\FluorineFx Aperture\Samples
Step 3:
Copy *.dll files (apimaging.dll,apoutlook.dll,apSystem.dll,fluorinepp.dll and msi.dll) to your Flex src directory
Step 4:
Copy your ‘-app.xml’ to ‘C:\Program Files\FluorineFx Aperture\Debug’ location of install dir for debugging or just pack the AIR

Flex@Beach’09

Flex@Beach is being hosted at Chennai on August 8th.
Check the below links:
Agenda Venue @flexatbeach

The Group link to share files and discussions.
The Videos link live on YouTube.

Loading Image / Swf in MAC, AIR

A Quick tip, was stuck today to load an local image / swf inside AIR at MAC OS.
The below is the solution:

var filenotion:String =”;
if(Capabilities.os.search(“Mac”) >= 0) filenotion = “file://”;
Image.source= filenotion +imgFileURI;

Using / Creating Locale for your language

How to do :

1 ) To create resource bundles for different languages and then use the ResourceManager class provided by the Flex API to get the resources.
Just changing the locale of the resource manager will reflect changes in the entire application with the values from the new locale’s resource bundle.

How to Create Locale :

For example if I want to support two locales (en_US and fr_FR) in your application and I my parent folder is named as “Locales”, then I might have following folders. As en_US ,fr_FR

It will be like this :
Locales/en_US , Locales/fr_FR

Steps to do before make the Bundle

Part 1 : SDK

Create folder
1 D:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\projects\framework\bundles \fr_FR
2 D:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\projects\framework\bundles\fr_FR \src

Download and paste
3.http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/framework/bundles/fr_FR inside step 2

Create folder :
4 D:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\locale \fr_FR

Execute
5. D:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0

bin\compc -locale=fr_FR -source-path+=frameworks/projects/framework/bundles/fr_FR/src -include-resource-bundles=collections,containers,controls,core,effects,formatters,logging,SharedResources,skins,states,styles,utils,validators -output=frameworks/locale/fr_FR/framework_rb.swc

Part 2 : Project

1. Set System PATH
D:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\bin
2. create required properties file mainBundle.properties
3. keep that file inside a folder with your locale name ‘fr_FR
4.execute from root path
mxmlc -locale=fr_FR -source-path={locale} -include-resource-bundles=mainBundle,collections,containers,controls,core,effects,skins,styles -output=src/Resources_fr_FR.swf

mxmlc -locale=en_US -source-path={locale} -include-resource-bundles=mainBundle,collections,containers,controls,core,effects,skins,styles -output=src/Resources_en_US.swf

After that place that swf file your Project

Locale/en_US :
Inside we need create the file name like “mainBundle.properties” inside that we need to create like that

welcome_title_text=Welcome,
form_first_name_text=First Name
form_second_name_text=Last Name
form_gender_text=Gender
form_gender_list_male_text=Male
form_gender_list_female_text=Female

Locale/fr_FR :
Inside we need create the file name like “mainBundle.properties” inside that we need to create like that

welcome_title_text=Bienvenue ,
form_first_name_text=Prénom
form_second_name_text=Nom de famille
form_gender_text=Sexe
form_gender_list_male_text=Mâle
form_gender_list_female_text=Femelle

Adding Locales to your Projects
Add the locale to the compiler options.
-locale=en_US,fr_FR

This link, claims to have compiled swc files for most languages : Babel

Flex with Java Collaborative using the Best Architectures of Both

This Post was my overdue subject, I wanted to help with a sample Application using Cairngorm, Spring BlazeDS Integration & Generic DAO.

This might be a heavy subject as it deals with many subjects:

The Source is available at the link: cairnspring

How to use the source effectively?
it is simple, steps below:

  1. Download, Source and Libs
  2. Unzip both and import “CairnSpring”, to your Eclipse
  3. Paste the lib files to “CairnSpring\WebContent\WEB-INF\lib” folder
  4. Import the “db.sql” into your MySQL Db, (change mysql port to 3036, else can be configured to default in “CairnSpring\WebContent\WEB-INF\config\jdbc.properties” file)
  5. In Eclipse, Window -> Preferences -> Web and XML -> XML Catalog -> Add User Specified Entries with below values
    Location : CairnSpring/WebContent/WEB-INF/config/spring-flex-1.0.xsd
    KeyType : Namespace Name
    Key : http://www.springframework.org/schema/flex/spring-flex-1.0.xsd
  6. Start the Tomcat Server with CairnSpring instance (the server host and port can be configured in file “CairnSpring\flex_src\Server.properties”)

SQLLite DBManager for AIR

The code file contains functions for managing SQL Lite Table and Database

fileReference.load()

Today, i faced a weird problem of fileReference.load() not working in AIR. Even, in the latest 3.3 SDK. To resolve that, you have to install Flex Builder Update. Then, modify your App.xml into air version 1.5. As, to get the benefits of latest AIR Version.

Otherwise, in AIR: Code gets compiled but when we select a file from system, it throws a error.

Licensing Flex / AIR Application

I have came through the thread and this is my solution  to protect the product with a serial key uncrackable.

The solution can be used in both Online browser based / AIR products.

The MD5 class does create a Unique system ID and verifies the MD5 checksum with a foreign key to check whether the user is registered or not.

MD5.registereduser – Boolean returns true, if user is registered.
MD5.skey                      - The Serial key to be used, to register (can store in a db or xml)
MD5.setRegKey(MD5.skey);   – To unlock the product.

Welcome the user with his name

Guessing the end-user name, for AIR Applications.
;)
var nameStr:String = File.userDirectory.name;

String converted to Component Dynamically

VBox(or any class with package path)

var ctrl:String = ‘VBox’;
var ClassReference:Class = getDefinitionByName(“mx.controls.” + ctrl) as Class;
var ctrlObj:Object  = new ClassReference();

ctrlObj is now the class of any component you need for dynamic usage

Executing exe using Flex (socket)

Update Post, only for Windows

Java socket code:

import java.io.*;
import java.net.*;

class SimpleServer
{
private static SimpleServer server;
ServerSocket socket;
Socket incoming;
BufferedReader readerIn;
PrintStream printOut;
public static void main(String[] args)
{
int port = Integer.parseInt(args[0]);
server = new SimpleServer(port);
}
private SimpleServer(int port)
{
System.out.println(“>> Starting SimpleServer”);
try
{
socket = new ServerSocket(port);
for( ;; )
{
incoming = socket.accept();
readerIn = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
printOut = new PrintStream(incoming.getOutputStream());
Runtime.getRuntime().exec(“notepad.exe”);
incoming.close();
}
}
catch (Exception e)
{
//System.out.println(e);
}
}
}

The AIR connects to socket using XMLsockets.
AIR code:

<mx:WindowedApplication xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”><mx:Script>

<![CDATA[
import flash.net.XMLSocket;
var xmlsock:XMLSocket;

public function sendServer():void{

xmlsock = new XMLSocket();

xmlsock.connect("127.0.0.1",3244);
xmlsock.send("call\n");

}

]]></mx:Script>

<mx:Button label=”Click” click=”{sendServer()}” />
</mx:WindowedApplication>

JavaScript code (using external Interface):

function loadexe() {
w = new ActiveXObject(“WScript.Shell”);
w.run(‘shutdown.exe /r’);
return true;

PHP Socket code:

<?php
$host = “192.168.1.10″;
$port = 2222;
error_reporting(1);
ini_set(‘display_errors’, ’1′);
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$max_clients = 1000;
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($socket, $host, $port);
socket_listen($socket, $max_clients);
$clients = array(’0′ => array(‘socket’ => $socket));
while(TRUE)
{
$read[0] = $socket;
for($i=1; $i<count($clients)+1; ++$i)
{
if($clients[$i] != NULL)
{
$read[$i+1] = $clients[$i]['socket'];
}
}
$ready = socket_select($read, $write = NULL, $except = NULL, $tv_sec = NULL);
if(in_array($socket, $read))
{
for($i=1; $i < $max_clients+1; ++$i)
{
if(!isset($clients[$i]))
{
$clients[$i]['socket'] = socket_accept($socket);
socket_getpeername($clients[$i]['socket'],$ip);
$clients[$i]['ipaddy'] = $ip;
socket_write($clients[$i]['socket'], ‘Welcome to Command Socket Server’.”\r\n”);
socket_write($clients[$i]['socket'], ‘————————————————’.”\r\n\n”);
socket_write($clients[$i]['socket'], ‘To Run Command: arguments.’.”\r\n”);
socket_write($clients[$i]['socket'], ‘To Run Windows Command: win arguments.’.”\r\n”);
socket_write($clients[$i]['socket'], ‘To Chat with others: say arguments.’.”\r\n”);
socket_write($clients[$i]['socket'], ‘To Exit: exit.’.”\r\n\n”);
socket_write($clients[$i]['socket'], ‘There are ‘.(count($clients) – 1).’ users(s) connected to this server.’.”\r\n”);
socket_write($clients[$i]['socket'], ‘————————————————’.”\r\n”);
socket_write($clients[$i]['socket'], ‘Enter your command to execute.’.”\r\n”);
echo ‘New client connected: ‘ . $clients[$i]['ipaddy'] .’ ‘;
break;
}
elseif($i == $max_clients – 1)
{
echo ‘Too many Clients connected!’.”\r\n”;
}
if($ready < 1)
{
continue;
}
}
}
for($i=1; $i<$max_clients+1; ++$i)
{
if(in_array($clients[$i]['socket'], $read))
{
$data = @socket_read($clients[$i]['socket'], 1024, PHP_NORMAL_READ);
if($data === FALSE)
{
unset($clients[$i]);
echo ‘Client disconnected!’,”\r\n”;
continue;
}
$data = trim($data);
if(!empty($data))
{
$pos = strpos($data,’say ‘);
if($data == ‘exit’)
{
socket_write($clients[$i]['socket'], ‘Thanks for using, goodbye.’.”\n”);
echo ‘Client ‘,$i,’ is exiting.’,”\n”;
unset($clients[$i]);
continue;
}
elseif($pos === false){
if(stristr($data, ‘win’) === FALSE) {
$output = exec($data);
}else{
$WshShell = new COM(“WScript.Shell”);
$oExec = $WshShell->Run(substr(stristr($data, ‘ ‘),1),0,true); // not a better option
}
}
else{
for($j=1; $j<$max_clients+1; ++$j)
{
if(isset($clients[$j]['socket']))
{
if(($clients[$j]['socket'] != $clients[$i]['socket']) && ($clients[$j]['socket'] != $socket))
{
echo($clients[$i]['ipaddy'] . ‘ is sending a message!’.”\r\n”);
socket_write($clients[$j]['socket'], ‘[' . $clients[$i]['ipaddy'] . ‘] ‘ . $data . “\r\n”);
}
}
}
}
}
}
}
}
?>

AIR Popup

Click here to have a look on AIR with multiple nativewindow instance (App also plays my Marriage video)

Flexible MXML Editor

click here for AIR version of Flexible, for editing and modifying the MXML. Alternative for Flex Builder. This works as MXML Parser. I have plans to create SWF instead of mxml (on runtime).

Applying Dynamic Properties for controls

Instead of using AS3 dynamic Class for assigning dynamic properties to the DisplayObject, the below line is best alternative:

DisplayObject['property']= value

Using this i am working on mxml parser, planning for swf generator from AIR

PNR Status (Indian Railway)

click here to install an Application to check the passenger status for Indian Railway Ticket.

Googler

click here to install AIR Application to google ( created using HTML and AIR )

SMTP Quick Emailer – AIR

request here to install AIR package using socket to send email using SMTP connection, you can send quick email to any email ID you need, For Source files check this link

  

Adobe Share AIR

Click here to use the Adobe Share AIR package for latest AIR version (1.0), using Adobe Share API

Follow

Get every new post delivered to your Inbox.

Join 436 other followers