Calling function of swf in flex mobile (iPhone)
Hi all,
I have created a project to run in iOs (iphone).
I loaded external swf which contain a method firstLoad() . When I run the application in flash builder then every thing works but when I install application in device it do not call the method firstLoad().
Please all help to resolve this here is the sample code.
<fx:Script>
<![CDATA[
private function loadSwfApplication():void
// load the file with URLLoader into a bytearray
var loader:URLLoader=new URLLoader();
// binary format since it a SWF
loader.dataFormat=URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, onSWFLoaded);
//load the file
loader.load(new URLRequest("swf/funtionDemo.swf"));
private function onSWFLoaded(e:Event):void {
// remove the event
var loader:URLLoader=URLLoader(e.target);
loader.removeEventListener(Event.COMPLETE, onSWFLoaded);
// add an Application context and allow bytecode execution
var context:LoaderContext=new LoaderContext();
context.allowLoadBytesCodeExecution=true;
// set the new context on SWFLoader
sfwLoader.loaderContext = context;
sfwLoader.addEventListener(Event.COMPLETE, loadComplete);
// load the data from the bytearray
sfwLoader.load(loader.data);
// your load complete function
private function loadComplete(completeEvent:Event):void {
var swfApplication:* = completeEvent.target.content;
swfApplication.firstLoad(); // this is a Function that I made it in the Root
// class of swfApplication
]]>
</fx:Script>
<s:SWFLoader id="sfwLoader" width="100%" height="100%" />
Many thanks in advance
Hi Antoni,
It sounds like you want to create one SWF using Flash
Authoring, and then load that SWF into a Flex 2 app and call
functions across that boundary.
You can only call a function in a loaded SWF directly from a
containing Flex 2 app if the SWF you're loading uses ActionScript
3. Currently, the version of Flash Authoring that supports
publishing ActionScript 3 SWFs is in beta:
http://labs.adobe.com/technologies/flash9as3preview/
Thanks,
nj
Flex Builder team
Similar Messages
-
How? Flex pass variables or call function in SWF
Dear All:
I am new in Flex.
But I stuck with a problem for weeks.
I wish to communication between Flex and Flash(swf).
I tried to pass variable from Flex to Swf. (Call function in Swf also pass variables)
I did some tourital on google by using SWFLoader, which works fine.
BUT the AS code in SWF must in MAIN FRAME.
I need put my AS code by using DOCUMENT CLASS.
BUT when I using Document class, the method is not working.
The flex cannot find function in Flash.
PS.I already set main.as class as public
Hope some one can give some hint.
I really get a huge headache.
Many thanks,
HenrymyIP wrote:
> or perhaps more ideal;
>
> for(var sVar in flashVars)
> {
> i++;
> //var mcName = sVar.substr(0,3);
>
> // create the MCs:
> duplicateMovieClip(_root.testBut,"medium"+sVar,i);
> _root["medium"+sVar].testText.text=sVar;
> _root["medium"+sVar].mcName = sVar.substr(0,3);
>
>
> // assign the function to each created MC:
> _root["medium"+sVar].onRelease = function()
> {
> trace(this.mcName)
> _root[mcName]._x=0;
> }
> }
>
thanks but this does not work.
I think that the problem is that the variables defined in the
for loop do not exist in the scope of
the function.
when the MC is clicked, and the onRelease function says:
_root[mcName]._x=0;
the variable "mcName" is empty.
seb ( [email protected])
http://webtrans1.com | high-end web
design
An Ingenious WebSite Builder:
http://sitelander.com -
Running some functions in the background - Flex mobile
Hi,
I have an application which allows the user to take a picture and upload it to the cloud. after the picture is taken, I'm performing some manipulation which takes 10 - 20 seconds. is there a way to do that in the background so it won't affect the user app flow.
ThanksThere's no concept of "background" processing or multi threading in Flex just yet.
In the past I have written processing routines that are processor-intensive, in such a way that they do some processing then stop, allowing the UI to function and then resume them after a moment. Basically, you need to be able to keep the current state periodically and then restart processing via a timed event, picking up where you left off.
Also be aware that mobile platforms have limited resources and apps can be asked to shut down at any moment, 10-20 seconds of inactivity will not be acceptable on some platforms. -
Flex3/air calling functions in embedded swf problem
i'm a newbie to flex so i'm hoping there is going to be a
simple answer to this problem. it's caused a massive headache!
i have been using a swfLoader to load a swf, then triggering
function calls within the swf from flex by using the following in
the script tag of my mxml
var mc:MovieClip = MovieClip(myMP3player.content);
mc.loadMP3Player("file:///"+path, artist, title);
where loadMP3Player is the function in the linked swf and
myMP3player is the id of the swfLoader.
this works great, no problems... but when i change the code
so that the swf is embedded, rather than loaded at runtime the code
above gives a
"ReferenceError:Error #1069 Property loadMP3Player not found"
error
when i try to trigger the function.
i have tried many different ways of referencing and embedding
the swf, all have the same result. i.e. swf loads fine and the flex
project compiles without errors, but i am unable to call the
function. see the code snippet for my details.
any help will be really appreciated.
btw: i need to embed the swf as i am distributing the
finished article as an air app.
-------------------------------------------------code
excerpt--------------------------------------------------1. You must be using the Flex Component Kit for Flash
2. Select the clip in the library that you want to turn into
a component for Flex
3. Use the command (command menu in Flash) to convert the
clip to a Flex Component
4. Publish -> your swc is ready
If you don't have a document class, one is made automatically
and it has the same name as the name of the clip in the library
You can provide a document class. Look at the linkage
identifier for the clip in the library. There you will see what the
name of the class is. Create the class yourself and Publish. Now
add the swc to your library path in Flex. Now you can use the
component as any other component in Flex. So, put the clip on the
stage using mxml or in ActionScript using var myplayer = new
MyPlayer(); -
Application Type: Flex Mobile Application
Target Platform: iPad
AIR Version: 4.0
Development Environment: Flash builder 4.6
I want to run some code just before iphone application goes into background. I need function similar to didEnterBackground
of native xcode app
(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegat e_Protocol/Reference/Reference.h
tml#//apple_ref/occ/intfm/UIApplicationDelegate/applicationDidEnterBackground:)
I tried using devactivated function of flash.display.STAGE.
I used following addEventListener:
STAGE = this.parent.stage;
STAGE.addEventListener(Event.DEACTIVATE, onAppDeactivated);
It worked for me but only when device is connected to development environment in debug mode. When I create my release build
it is not working.
So how can I make sure that my code runs before application goes into background.Even I am facing almost same issue
Problem installing Adhoc version to iPhone and iPad - Development Environment Is - Adobe Flash CS6 -
Calling functions / setting variables in loaded SWF
You know how you can create a Movieclip object, add a
function or variable to it, then call that function or change that
variable from within the SWF that includes it? I wanna be able to
do that, only with SWFs that are loaded at run time.
My "main" SWF is simply a menu-type thing. The user clicks a
button in my MAIN.SWF, and the MAIN.SWF then loads the SWF that's
associated with that button, using the AS 3.0 prescribed
Loader()-URLRequest()-addChild() method that everyone always asks
about.
This works great. But now I've got some custom objects and
such (ie., not just strings) within my MAIN.SWF that I'd like to be
able to share with the loaded SWFs. Preferably, I'd like to use an
accessor-type function (ie.,
LoadedSWF.GiveMeTheCoolObject(MyCoolObject);), though at this point
I'm willing to hack into the object itself (ie.,
LoadedSWF.CoolObject.CoolField = MyCoolObject.CoolField;) if that's
what it takes.
I've tried just calling the functions and setting the fields,
but the AS 3.0 compiler doesn't care for that sort of nonsense on
it's generically-defined objects. Notice also that, at run time, a
call to LoadedSWF.hasOwnObject("GiveMeTheCoolObject") returns true.
So my big-brained colleagues, what's the magic?
In advance, thanks for the help!
ScottKglad,
quote:
Originally posted by:
kglad
from that error message it appears your function is expecting
a member of the MyCoolObject class, correct?
and MyCoolObject is not an instance of that class. so, you
need to fix that. ie, create a member of that class and use that
class member as the function parameter.
Heh, that's what the error message says all right. But the
object actually IS a MyCoolObject class object. I stared at this
thing for hours, and MyCoolObject IS an instance of that class. I
tried various casting combinations (including casting it to an
Object and passing that) but had no luck whatsoever.
So I googled this particular runtime error message ("Error
#1034: Type Coercion failed: cannot convert ") and found a ton of
links to other people having a similar issue. Typically, the
problem was just as you said, someone passing a button as a string,
that kinda thing. But one guy had a problem with an object he
derived from the Event class. After hours spent trying to get it to
work, he tried overriding the base class' clone() method and got it
to work:
http://www.asserttrue.com/articles/2006/10/14/custom-events-in-actionscript-3-0
As for my project, I took a long hard look at the overall
architecture of my project and decided that it was best if all the
"real work" took place in the MAIN.SWF file. This approach would
solve a couple of other problems, and it just makes sense in a
"separate the display from the data" mentality.
So (and this is the interesting part) I changed the API for
the LOADED.SWF to accept String pairs (ie.,
LoadedSWF.AddToDisplay(Name:String, Data:String) ) instead of
accepting MyCoolObj. Ran it, and Viola, now we're working without
any run time exceptions. After that glorious moment, I created a
couple of other APIs that just accepted base classes (one an int
type, the other a function type) and was happily on my way.
From this, I gather that passing non-base class (ie, derived
class) objects to loaded MovieClips via custom function APIs is...
maybe not as straightforward as we'd expect. In the grand scheme of
things though, not a big deal: As far as I'm concerned AS3 rocks.
Again Kglad, thanks for all the help: Your input on how to do
this was the big push that I needed to get over the last technical
hurdle of this project.
To those who are reading this topic for the "how do I call
functions and/or set variables in a loaded SWF?"
The short answer is to cast the loaded SWF's content object
as a MovieClip and then call the function or alter the variable:
//Load the SWF (you've seen this code a million times)
var LoadedSWFObj:Loader = new Loader();
var MyURL:URLRequest = new URLRequest("LoadThisSWF.SWF");
LoadedSWFObj.load(MyURL);
//This is within your Event.COMPLETE handler:
//Cast it as a MovieClip object and work with that.
var LoadedSWF:MovieClip = LoadedSWFObj.content as MovieClip;
// or another way to cast it is:
var LoadedSWF:MovieClip = MovieClip(LoadedSWFObj.content);
//Call yer function:
LoadedSWF.CallMe(); -
hey my iphone 4 has a problem regarding carrier. Its always showing searching mode and wifi-address N/A and Bluetooth address 00:00:00:00:00 and call function is disable. Please help me. I have tried every thing ..like restore from DFU mode with out sucess.
Refer to Note 98458 - SAPMSSY1, CALL_FUNCTION_NOT_FOUND
-
Check What PHP function returned with Flex Mobile Project
Hello, I'm connected to PHP service and Im calling function login that is returning "yes" or "no".
My question is, how to check what was returned with Flex, this is what I have:
protected function button_clickHandler(event:MouseEvent):void
loginResult.token = employeeService.login(Name.text, pass.text);
What to do next?
Thank youThanks Keith, I'll have a look at that. In addition to opening a PDF, I want to be able to encode an anchor id in to the open command to jump a specific anchor; I'd concluded that on iOS, until Adobe add decent url-scheme support, that was a no go - so I've been staring down the barrel of converting the .pdf to HTML and tidying up the inevitable issues manually. Here's hoping Print2Flash will help avoid that!
-
Test Flex Mobile Project On Iphone
Hi,
Can i test The flex Mobile Project in Iphone Simulator Like Xcode? in Flex debug i can select the Iphone device, but this Device haven't accelerometer for example.
Can i Test in Another Debug Device, or can i enable Accelerometer in Debug Device in Flex?Adrian, flash/flex as a development tool is mostly platform independent so much development testing can be performed on any mobile platform. It may simply be a matter of convenience to use an android tablet in place of an iPad. That's not the same as an endorsement to buy an android tablet for testing iPad apps. You should always have the target platform available.
The iPhone/iPad development works. Perhaps it could work better, but plenty of people use it now.
Why use Flash? The reasons are plain to see - Flash developers can use their existing skillset and they can develop for multiple platforms with the same technology, rather than differrent technologies for each platform.
Flash/Flex development for mobile isn't perfect, but neither is anything else. -
why i can't make a normal video call over my cellular operator using by iphone 4s ????!!!!
is it possible that if my mobile is iphone so i can not contact (Video Call - or Send Files over Bluetooth ) people do not have iphone ??????!!!!!!!!!
i'm still looking for solution, but if i there is no solution so i will throw My Own iPhone 4S in the nearest Trash.
(I had got a big problem and thanks for Nokia saved me. and if i don't care about apple products i will never send to you this, so kindly find solution or people in middle east will stop using iphone)No clue why you cannot make video calls over your cellular operator... have you tried contacting them?
If you're referring to FaceTime, it is currently limited to Wi-Fi only.
Sending files via Bluetooth is not a supported feature of the iPhone or iOS. A simple search of the web or these forums would have made that abundantly clear.
Threatening to throw away valuable items in these forums only serves to make you look less than intelligent. No one here is an Apple employee, we are all users like yourself. As such, we could care less what you do. If you choose to be stupid, that's up to you.
Educate yourself and stop whining. -
Iphone 3gs Video calling function
How do I use the video calling function on the 3GS I was told by 02 customer service, that it's below the "call" button under options???????....how do I do this, obviously it needs to be a 3G phone receiving the call, and one that enables video calling....
I don't know about the slacking part. The iPhone's introduction got many cell phone manufacturers off their collective duffs - away from putting out pretty much the same old stuff year after year without seeing significant improvements. Phones in the smart phone category were primarily targeted at the enterprise or business market prior to the iPhone. Sales of phones in the smart phone category to consumers is on a significant rise due to the iPhone, and how many iPhone "killers" have we seen since? A bunch, which is a good thing.
Apple doesn't manufacture different iPhone models. There is one model at a time with the only difference being storage capacity or a black or white backing. Video calling may be used heavily in parts of Europe with a significant number of cell phones sold with the capability, but not so in the U.S. - not yet anyway.
I venture to say we will see this capability with the iPhone at some point. Maybe after LTE (4G) networks get rolled out in many parts of the world. The two largest carriers in the U.S. - Verizon and AT&T are in the process of rolling out an LTE (4G) network which won't be in place extensively for another 2 years or so. -
I have a 2011 tahoe. My bluetooth functioned properly until I updated my iPhone. Now the iPhone connects to the Tahoe but when I try to call a number it does not work. Either it cals the number and has no outgoing or incoming sound or it just says it iis unable to complete the call.
I would check with the Auto dealer where the vehicle was purchased to check and see when the bluetooth software was last updated on your vehicle. With the vehicle being a 2011 and if the software has not been updated since the dropping of IOS 7 then obviously there will be software incompatibilities.
Good luck. -
Have Virgin Mobile iPhone 5 and they said it can't be unlocked. Reason to get it unlocked is so I can use the phone when travelling in Europe. This is crazy because I also payed for the phone in full... Also, what happens if you move to a region in the U.S. and service is bad...Your stuck with an expensive brick.. Any way to get it unlocked?
Not all carriers unlock their phones. They are under no legal obligation to do so in many places.
-
Flex Mobile project scaling with Retina display iPad (3rd gen).
Adobe et al,
With the new iPad 3 we now have a ton more pixels to utilize. I'm familiar with and have already successfully tested the AIR 3.1+ commandline compiler option (-platformsdk) to get Retina display on the new iPad. In ActionScript mobile projects the content is rendered beautifully on the new iPad. But with Flex Mobile projects, something is happening that causes it to render incorrectly. It's retina display alright, but the size is way too small.
Below is an image WITHOUT the -platformsdk build tag, that causes the app to be pixel doubled to fit on the new iPad:
Notice that it's scaled proportionally, even though the text and components are slightly pixelated. Not a big deal, but noticeable on the device.
This image is taken with the app rendering in Retina display (setting the -platformsdk pointing to iOS 5.1 SDK):
As you can see, the text/components are rendered really clear, but the scale is way off. Obviously it's getting the width of 2048x1536 from the device, but it's way too small.
How do I fix this? I've tried changing the applicationDPI, but it doesn't fix it. Setting a width/height of 1024x768 does nothing either. It seems we need to overrride a behavior that causes it to fit everything in so small.
A little help?
Thanks,
iBrentAlright, kevinkorngut's answer was the right one. It appears that even though AIR 3.x can render high resolution apps, it still returns the incorrect DPI for the new iPad. In a Flex Mobile project you have to override the DPI using the method mentioned above.
Here are the results I got:
Using the runtimeDPIProvider property on the TabViewApplication tag (works for any of the three project types) I created a class that extends RuntimeDPIProvider. To detect which iPad I was on, I used the following code:
override public function get runtimeDPI():Number
var os:String = Capabilities.os;
if(os.indexOf("iPad") != -1)
if(Capabilities.screenResolutionX > 2000 || Capabilities.screenResolutionY > 2000)
return DPIClassification.DPI_320;
} else {
return DPIClassification.DPI_160;
} else {
return Capabilities.screenDPI;
I'm returning a DPI of 320 as this gives the best result that matches the proportions of the device. In other words, even though the iPad DPI is 264, setting the app to 320 gives the correct size at the new Retina display.
In order for this to work, you must compile the app with the -platformsdk flag pointing to iOS 5.1 SDK, and currently that means you need a Mac running Lion with Xcode 4.3.1. Here's the adt command I used:
adt -package -target ipa-test -storetype pkcs12 -keystore ~/Desktop/iOS_DevCert.p12 -provisioning-profile ~/Desktop/iOS_DevProfile.mobileprovision newiPadTest.ipa newiPadTest-app.xml newiPadTest.swf -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPh oneOS5.1.sdk
Also, the -app.xml descriptor file must have the <requestedDisplayResolution>high</requestedDisplayResolution> within the <iPhone> tags.
Thanks everyone for their replies!
iBrent -
Possible to obtain phone IMEI number with flex mobile project?
Just like the title says, is it possible to obtain phone IMEI number with flex mobile project? If not, does anyone know of another method to get a unique number to identify the phone being used (on android and iphone)? I'm asking because I'm building a chat application, and I need a way to potentially ban users based on something other than an IP address.
edit: now that I think about it, an IMEI number might not be the best way, since wifi tablets may not hav an IMEI number, anyone have any other idea how I could get a number to identify a device that would already be present, because i'm afraid if its something generated by me, a simple uninstall and re-install could circumvent a ban.If this is an Android project, you can use this ANE:
http://blog.snowflax.com/native-imei-action-script-extension-for-android/
I have verified that it does work and provides the IMEI. For cases where there is no IMEI ( bc the device is not a mobile phone, or it uses IMSI instead ), you can just bypass the device id check with your database, and enable full functionality.
Although this is not full-proof, it will nevertheless screen a lot of devices. With this, you can keep track of the number of app installs / resets, and add a 'banned' flag if you want to in your DB -- if you see unusal activity ( like: unsually high number of re-installs ).
-----> UPDATE:
I just found this ANE which includes a class called 'SystemProperties', to find the IMEI/IMSI/serial/phone number on Android, and the MAC address on iOS:
https://github.com/mateuszmackowiak/NativeAlert
I have verified that the iOS part works, but haven't tried the Android side, yet. Note: for iOS, it will also give you a UUID ( even though the object tag claims it is the UDID -- it's not ), which is worthless as a persistent means of identifying the device. since it gets reset on each app re-install. So, for iOS, you have to use the MAC address, unless you are willing to store/restore the UUID into EncryptedLocalStore, as suggested by a user in:
http://stackoverflow.com/questions/6794493/get-unique-identifier-mac-address-udid-etc-in-a dobe-air-for-ios
Maybe you are looking for
-
My new iMac did not come with iDVD as they are not using iDVD any longer. I made a movie that I needed to put on a DVD that would play on any external DVD player. After calling Apple twice, they recommened a 3rd party program so I downloaded "Burn-o
-
Problems Installing Adobe AIR on OSX
Has anyone had successful experience deploying the AIR runtime + AIR apps in mixed OS X environments? How about from another bootstrap installer on OSX? We have a large QA lab with various OSX machines. On a number of them, we can't install the Adobe
-
Req. to know, to which to pass prmontl discnt in BAPI_SALESORDER_SIMULTE
Hi SAP Gurus, I want to get the trade promotional discount when order is simulating. Hence i am using the bapi BAPI_SALESORDER_SIMULATE , and i don't know to which field i have to pass promotional codes in this BAPI . Please let me know to which fi
-
Can't import photos since 9.1.5
Hi there, since I updated to iPhoto 9.1.5 I can't import any photos from my Sony Cybershot. When I connect the camera, iPhoto is launched and the cameras memory stick shows up on my desktop. But my camera is recognized by iPhoto and actually iPhoto f
-
Issue in Intracompany STO with Delivery and Billing
Dear Experts, In Intra Company STO with Delivery and Billing, pls help to map this scenario: During PGI Supplying plant stock a/c credited. and debited to some interim a/c. During GR at receiving plant this interim a/c credited