21
Apr
Posted by Naresh Khokhaneshiya in Uncategorized. Tagged: ActionScript 3.0, Flash, Flex. 1 Comment
Searching in Array using Array.indexOf() function is very easy
. For example,
var toys:Array = new Array();
toys.push("ball");
toys.push("bat");
toys.push("glows");
toys.push("pads");
toys.push(23);
toys.push(14);
var searchIndex:int = toys.indexOf(”ball”);
if(searchIndex == -1)
{
trace(”No! how can it be there”);
}
else
{
trace(”Yup! it’s there”); //output will be from here
}
So, it works fine when the value inside the indexed array is primitive – i.e. Number, String, Boolean etc. BUT it will not work when array contains objects of type Object. For example,
var toys:Array = new Array();
toys.push({name:"ball", count:2});
toys.push({name:"bat", count:2});
toys.push({name:"glows", count:2});
toys.push({name:"pads", count:2});
toys.push({name:"runs", count:200});
toys.push({name:"wickets", count:2});
var searchIndex:int = toys.indexOf({name:”ball”, count:2});
if(searchIndex == -1)
{
trace(”No! how can it be there”); //output will always be from here if you search an object
}
else
{
trace(”Yup! it’s there”);
}
So, that’s the case for objects. In the syntax of Array.indexOf(itemToSearch:*, fromIndex:int = 0), we notice that the first argument is * data type – i.e. it can be any data type, BUT it’s not working for Object. Would any one have lights on this?
17
Apr
Posted by Naresh Khokhaneshiya in AIR, ActionScript, Flash, Flex. Tagged: ActionScript 3.0, Flash, Flex. 1 Comment
If you want to set the position of horizontal scroll position inside TextField, you can use TextField.scrollH.
Let’s say I am typing in the input TextField and I typed beyond the width of TextField. You will see the last characters visible you typed. Now due to some other event, say user clicks on other than this TextField, focus is changed to some other object than this TextField, you may want to reset the scroll position of TextField to starting characters in it.
You will use :
TextField.scrollH = 0;
This will set the horizontal scroll of TextField to 0 and hence showing the starting characters in TextField.
8
Apr
Posted by Naresh Khokhaneshiya in Uncategorized. Tagged: ActionScript 3.0, Flash, Flex. Leave a Comment
Loader class can load image from ByteArray. I used this method before a year ago to set a part of a screen for Screen Sharing application. Right now I was having a case where I need to create an image from Base64 encoded string. I am using following code to do this ::
var str:String = ""; //It won't be an empty string
because it will a base64 encoded string of image.
var byteArr:ByteArray = Base64.converToByteArray(str); //Here you can use any ready made library to decode and convert the String into ByteArray. I used ready made library from here.
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
loader.loadBytes(byteArr);
function onImageLoaded(e:Event):void{
addChild(loader);
trace(loader.width + " : " + loader.height);
}
That’s it. This can be useful where you can not load the image from server because you don’t have the image but it’s data as string. May this can be useful to some one
8
Apr
Posted by Naresh Khokhaneshiya in AIR, ActionScript, Adobe, Flash, Flex. Tagged: ActionScript 3.0, Flash, Flex. Leave a Comment
Is there any way to hide default context menu items on Flash TextField? Some one will try to answer with ContextMenu.hideBuiltInItems() function, but this function does not really work with Flash TextField. It does not hide the built in items.
So following code does work but not as expected ::
var myContextMenu:ContextMenu = new ContextMenu();
myContextMenu.hideBuiltInItems();
var txt:TextField = new TextField();
txt.contextMenu = myContextMenu;
addChild(txt);
Now if you right click on TextField then you will see that you can see all the built in item. Any one knows why?
22
Aug
Posted by Naresh Khokhaneshiya in AIR, Adobe, Flash, Flex, Releases. Tagged: ASTRO, Flash Player 10. Leave a Comment
On August 11, 2008, Adobe released Flash Player 10 Release Candidate. This version has only one update from last Beta update and that is NSS, i.e. Flash Player 10 for Linux now supports Mozilla’s Network Security Services(NSS) for secure network connections.
You can find more information about this on adobe labs over Flash Player 10 release notes.
17
Aug
Posted by Naresh Khokhaneshiya in AIR, ActionScript, Flash, Flex. Tagged: ActionScript 3.0, Flash, Line Breaks, TextField. 3 Comments
Problem :: When you deal with TextField.htmlText don’t append any html strings directly to htmlText property of TextField. Because the TextField appends “<br>” tag automatically before it appends any html string to htmlText property, it will set your string automatically in next line instead of the current line. This mistake is done to save memory as we don’t have to create a temporary string.
Example :
textField.htmlText = “”; //clear any previous texts
for(var i:uint = 0; i < 3; i++)
{
var str:String = “”;
str += “Hello World”;
str += “<br>”; //As you’re thinking of breaking line from here
textField.htmlText += str;
}
//output would be something like following ::
Hello World
//This line break because of <br> tag
Hello World //This is an automatic line break
//This line break because of <br> tag
Hello World //This is an automatic line break
//output finished
Possible Solution :: Create an empty string and append all the html strings to this string. When the final string is ready, assign this string to htmlText property of TextField. This will not create any unnecessary line breaks inside TextField.
Example :
textField.htmlText = “”; //clear any previous texts
var htmlStr:String = “”; //Temporary empty string
for(var i:uint = 0; i < 3; i++)
{
var str:String = “”;
str += “Hello World”;
str += “<br>”; //As you’re thinking of breaking line from here
htmlStr += str;
}
textField.htmlText = htmlStr;
//output would be something like following ::
Hello World
Hello World
Hello World
//output finished
Hope this would prevent someone from mistakes which I did
17
Aug
Posted by Naresh Khokhaneshiya in ActionScript. Tagged: FlashDevelop, Integration, SVN. Leave a Comment
Though FlashDevelop guys are working on integrating FlashDevelop with SVN, we can go with this handy tool.
To integrate SVN with FlashDevelop, you should have installed one of the SVN clients (say tortoiseSVN) on your machine.
FlashDevelop can be integrated with SVN using following steps ::
Step 1:
Create a file named build.bat in the directory containing your FlashDevelop project file and paste following code in that file :
@ECHO OFF
set TORTOISESVN_PATH = C:\Program Files\TortoiseSVN\bin
set CURRENT_PATH=%CD%
“%TORTOISESVN_PATH%\TortoiseProc.exe” /command:commit /path:”%CURRENT_PATH%\*”/logmsgfile:”%CURRENT_PATH%\logmsg.txt” /notempfile /closeonend:3
“%TORTOISESVN_PATH%\SubWCRev.exe” “%CURRENT_PATH%” “%CURRENT_PATH%\version.a” “%CURRENT_PATH%\version.txt”
pause
Step 2:
Also create another file named “version.a” with following content ::
major=0;
minor=1;
build=$WCREV$ ;
date=”$WCDATE$” ;
Step 3:
Now go to Flash Develop Project Explorer Right clik on project Properties Build
In the Post-Build Command Line, add following line ::
$(ProjectDir)\build.bat
Step 4:
Press F8, when you want to commit files inside the FlashDevelop project.
You can fine more information regaring this on : FlashDevelop and SVN Integration
17
Aug
Posted by Naresh Khokhaneshiya in AIR, Flash, Flex. Tagged: ActionScript 3.0. Leave a Comment
And here is the answer to quiz ::
undefined //as property ‘prop1′ is not defined in obj2 and we pointed obj1 to obj2
Khokhaneshiya //now we defined ‘prop1′ in obj1 and set value ‘Khokhaneshiya’
//also obj2.prop1 will be Khokhaneshiya… You can trace out
What you were thinking?
15
Aug
Posted by Naresh Khokhaneshiya in AIR, Flash, Flex. Tagged: ActionScript 3.0. Leave a Comment
Check following code ::
var obj1:Object = new Object();
obj1.prop1 = “Naresh”;
obj1.prop2 = “Khokhaneshiya”;
var obj2:Object = new Object();
obj2.prop2 = “Hello world”;
obj1 = obj2;
trace(obj1.prop1); //What will be output here
obj1.prop1 = “Khokhaneshiya”;
trace(obj1.prop1); //What will be output here
Be honest, Don’t trace it out using Flash.
You will have answer in following posts !
15
Aug
Posted by Naresh Khokhaneshiya in AIR, Flash, Flex. Tagged: AIR, Network. Leave a Comment
We can detetct the network in AIR using following code ::
Need to use ‘ServiceMonitorShim’ complied clip from AIR components in your fla file.
import air.net.URLMonitor;
import flash.net.URLRequest;
import flash.events.StatusEvent;
var monitor:URLMonitor;
monitor = new URLMonitor(new URLRequest(’http://192.168.0.57′));
monitor.addEventListener(StatusEvent.STATUS, announceStatus);
monitor.start();
function announceStatus(e:StatusEvent):void
{
trace(”Status change. Current status: ” + monitor.available);
}
Recent Comments