AS3 :: Flex - When To Use WriteUTF() And WriteUTFBytes() In ByteArray
Apr 5, 2011
I am trying to create a file format for myself, so i was forming the header for my file. To write a known length string into a ByteArray, which method should i use, writeUTF() or writeUTFBytes(). From the Flex 3 language ref, it tells me that writeUTF() prepends the length of the string and throws a RangeError whereas writeUTFBytes() does not.
I have a socket server listening on 2 ports, 1 port for the socket server and 1 port for the policy server. My code is below, in this scenario, data is sent and received perfectly fine. however, for example if I add a button with a simple:
socket.writeUTFBytes("Message"); socket.flush();
after the initial connection, it doesn't seem to send any data to my server (I have my server printing all data transmissions to the console for checking) Initial connections work fine, as seen below:
I am working on a game, made with Flash (using AS3) The game has a fast ball and when this ball hits an object it has to make a sound... but the sound starts with delay (so the ball is far away when the sound is played).This sound is edited by me and it hasn't got any silences at the beginning.The method i'm currently using is the simplest one:
public var sonidoPuntos1:sonidopunto1 = new sonidopunto1()
and then...
sonidoPuntos1.play()
I am trying to introduce the file into a ByteArray and then playing it from there...
I work on a Flex application that creates compressed files and uploads them on a server. The files are created with ByteArray.compress method, which is zlib compression. I can decompress them using Python API on the server but I prefer to keep the files compressed there. I want to be able to download and decompress the files later, however WinZip and WinRar fail to decompress them. When I google for zlib utility, I only find zlib dll library. I need a simple application for Windows (and/or Linux)
The data provider (ArrayCollection) for my data grid consists of objects with ByteArray (int) fields. How do I make the data field display as int without transforming my data provider?
i'm using AMFPHP to stream content from my server to my Flex application, since Flash is a clientside technology i would like to make it harder for people to grab protected files, so i created a system that streams swf file to another flash player, i've done all the testing on URL stream, now i want to pass the swf file to the player as bytearray .. since i think it's safer and harder to break and in the future i even might do some encryption of my own if i became more familiar with bytes and bits .. anyways is my method the best one? (SWF to ByteArray?) or is there a better one? if the bytearray method is the best, i am facing a problem in outputing the swf file in the right format, i'm using a very primitive method .
We have requirement with the AIR application which loads the flex generated swf which inturn loads the flash generated swf using SWFLoader. This is not working as desired.This gives the following error: SecurityError: Error #3226: Cannot import a SWF file when LoaderContext.allowCodeImport is false.
I have an array of objects. Each object has 3 integer fields and 2 binary fields.I've utf encoded the binary data and json encoded the array & sent it to Flex client side.On the client side, decoding data, I've got a String representing the binary data (utf decoded).Now, how can I convert this String to ByteArray? Or how can I read each byte of the String?
There is a WSDL which have one method which take byteArray & fileName(which i want to write) as a parameter to write a file in local system, the following is the code...
public void writeLocation(byte[] byteToWrite, String fileName) throws FileNotFoundException { StringBuffer fileLocation = new StringBuffer("D:\Products\Device");
[Code]....
but the flex 2 showing the error when i searched i found out in flex 2 there is no "data" property. so i am unable to create the selected object into byteArray..
I'm trying to upload a bytearray, but am struggling to make the content-type go as image/png (it always goes as application/octet-stream no matter what I do.).I've checked the request with Charles Proxy, and can confirm that it indeed always goes as application/octet-stream.My code is:
protected function onObjectLoaded(event:Event):void { var byteArray:ByteArray = new ByteArray(); var fileName:String = fileReference.name; var uploadPath:String = serviceURL;
[code]....
how to change this, so the bytearray itself gets passed in as image/png instead of octet-stream This image is being upload from the client side, and being passed as a FileReference, which I then invoke load(), and then get it's "data" attribute, which is where the bytearray is.
I have a FileReference that is being uploaded. But before upload, I call the compress() method on the ByteArray of the FileReference i.e. fileReference.data.compress().
But I observe that the uploaded file is the raw file and not the compressed file.
Is this a Flex bug or expected behavior? The data field in the FileReference is read-only. Does that come into play?
how to convert a file I have on my server (pdf/excel/ppt) to a ByteArray. The reason I want to do this is to display the dialogue open/save as to the user and I must set the Content-Type to octet-stream. The dialogue shows fine with just navigateToURL() but for pdf's it is the user's local browser setting. For a URLRequest I must set the data as a ByteArray. I'm trying to use the code located here:
How do i open file and get its content as a ByteArray in AS3. I saw examples, using FileStream & File classes from flex.filesystem, but the doc says it's for AIR only.
I am trying to display a bytearray as a resized image. The Image is displaying correctly, but the sizing is off. Let me explain.
First I have the image data encoded so I need to decode the image data
// Instantiate decoder var decoder:Base64Decoder = new Base64Decoder(); // Decode image data
[Code]....
This works. The image is displayed correctly. However, if I hardcode the image (img) height the resized image is shown correctly, but within a box with the original image's dimensions.
For example, if the original image has a height of 300px and a width of 200px and the img.height property is set to 75; the resized image with height of 75 is shown correctly. But the resized image is shown in the upper left corner of the img container that is still set to a height of 300px and a width of 200px. Why does it do that? And what is the fix?
The best way to illustrate the problem is by placing the image inside a VBox and show the borders of the VBox. From the code block above, if I change the image height and set the image to maintain aspect ratio (which by default is set to true but I add it here for completeness). the problem becomes clear.
// Display image var img:Image = new Image(); img.height = 75; // Hardcode image height (thumbnail) img.maintainAspectRatio = true;
I am using Flex's Alchemy library to generate SWC's out of C files. I have a byte array (unsigned char buffer[size]) in the c-layer that I'd like to return to the ActionScript layer as a ByteArray. Do I have to iterate through the array and explicitly call AS3_Set on each element or is there a way to just return the entire C array at once?
I'm trying to convert the byteArray of a Sound Object to an array with floats. The Sound Object plays back fine & at full length, but the float Array i get from it is cut off (but sounds correct), so i must be doing something wrong in the conversion:[code]The top two channels are the original Sound Object.The lower two is the float Array Data. I aligned them so you can see that the beginning is cut off and obviously the length is incorrect.
I am developing an web application in flex which have a feature of recording the runtime by having a snapshot of each frames then encoding it into a ByteArray for video playback. I am currently using NetStream.appendBytes() for playing the ByteArray FLV. It is working, but I just found out about OSMF and thinking bout integrating it in my application. It is it possible to play the flv byteArray in OSMF?
I have an Air application with remote service in codeigniter.I'm trying to save a bytearray that I received from the Air app but when I save the data I get empty files with the correct filename.So there must be something wrong with my bytearray or the way I save the data.Does anyone have an idea what I'm doing wrong?I've debugged the Arraycollection I sent and the bytearray is definitely in there.
public function uploadImage($image) { foreach($image as $img)
I want to open a pdf/excel/doc using flex, as all know we can use navigateToUrl(URL) method to open a file from the server. But my problem is those files are encrypted in the server, so I load the files as follows
ByteLoader = new URLLoader(); ByteLoader.dataFormat = URLLoaderDataFormat.BINARY; ByteLoader.load(new URLRequest (constructedURL));
so that I can manipulate them and can get the decrypted file. Now my question is, my data already got downloaded from the server, so how will I launch the files(pdf/doc/excel) with the binary content which I had got?
Is there anyway i can launch those files like we do it in navigateToURL()?
In the 4th line in the code above i am getting "Error: Error #2030: End of file was encountered." I checked the length of the pixels object which is 4 times the width*height of the rect object. Given that setPixels() functions reads unsigned int from bytearray and sets that value to pixels, I think it should work.
But I have no clue why this wont work. The pixels object is filled after RLE decoding of the data which i get from a server.
Is there any work around or any other method which I could try to use. The loader class wont work as the data that I get from the server is not in any of the recognized format.