Shared Object - Prompt Data Permissions Dialog
Hello,
I'm creating a small app to run from CD-Rom/local
installation that will use multiple shared objects for data
storage. To ensure proper saving without surprising the user with a
permissions dialog unexpectedly, I'd like to request unlimited data
storage on first time app launch - Joey Lott shows how to do this
in the Actionscript Cookbook...
request=mySO.flush(1024 * 500);
My question is,
Can I perform this permissions request with the user a single
time with a generic app SO in global fashion, so that the
permissions would be set for any SOs created during the use of the
product (all written to same SO directory), or do I have to request
permissions for each and every SO created? Since the latter
would be unacceptable from a UE standpoint, that means stuffing all
app data into a single SO which doesn't seem so great from a data
config perspective...
I really appreciate your attention and help on this!
Thanks in advance,
-Maura
Hmm. Experimented a bit and it seems that once the permission
is set it applies to the Flash Player installation globally, and
not per SO, not even per domain...
Or, please correct me if I'm mistaken.
Thanks.
Similar Messages
-
Hi all,
I made a slot machine. It's simple enough: hit the spin
button, the reel movieclips play, and a random number is created to
decide what the winner is. People will win hats, shirts, buffet
vouchers, etc., and I have to limit the quantities for each, and I
have to be able to report how many of each were spun after the
event is done. For this, I've created a local shared object that
stores each individual spin and also totals for each prize. I used
the shared object so we can shut the machine down and move it to
other parts of the city as we move around...and because it's a
standalone machine with no VMWare or database access.
The problem: I want to use another movie (which accesses the
same shared object) to display the data in report format. If I
spin, and then close the movie, and open the other one, there's
nothing. What I have to do is spin and close the movie three times
before there is anything showing up in the other movie. The problem
is that I have several prizes unaccounted for.
I'm thinking that either I start the local shared object in
the wrong place, or am flushing it in the wrong place. Any advice
would be greatly appreciated.
Code is attached.Hi again,
If someone can point me in the right direction as to where to
look, I would greatly appreciate your help...Thanks!
<pre>
//start up the local shared object
mySO=SharedObject.getLocal("spins","/");
if(mySO.data.spinCount==null){
mySO.data.spinCount="Spin Results";
if(mySO.data.prizeTotals==null){
mySO.data.prizeTotals="Prizes Used";
mySO.flush();
//done starting up the local shared object
//Store data locally
function sendDataToLocal(spinResult){
mySO=SharedObject.getLocal("spins","/");
inputOut=spinResult;
theTime = new Date();
spinTime= (theTime.getYear()+1900)+" .
"+(theTime.getMonth()+1)+" . "+theTime.getDate()+",
"+theTime.getHours()+":"+theTime.getMinutes();
mySO.data.spinCount+="\n"+spinTime+":
"+inputOut+"\n----------------------";
mytempPrize=prize1+" Used= "+used1+"\n"+prize2+" Used=
"+used2+"\n"+prize3+" Used= "+used3+"\n"+prize4+" Used=
"+used4+"\n"+prize5+" Used= "+used5+"\n"+prize6+" Used=
"+used6+"\n"+prize7+" Used= "+used7+"\n"+prize8+" Used=
"+used8+"\n"+prize9+" Used= "+used9+"\n"+prize10+" Used=
"+used10+"\nTotal Spins:
"+(used1+used2+used3+used4+used5+used6+used7+used8+used9+used10)+"\n";
mySO.data.prizeTotals=mytempPrize;
trace(mytempPrize);
mySO.flush();
inputOut="";
//Done storing data locally
</pre> -
Shared Object data not saving?
I tried adding a "save progress" function to my latest project using the shared object class, yet it's not working. All of the information that should be saved, traces as undefined. I looked through some older projects, and the save functions in those projects are working fine. Any ideas on what might be the issue?
use:
import flash.net.SharedObject;
var saveTest:SharedObject=SharedObject.getLocal("testFile","/");
saveTest.data.sample="testing"
trace (saveTest.data.sample)
and no, you cannot explicitly control where the sharedobject is saved. -
Where does flash stores the local shared object data
HI All,
I'm using shared object to store local data:
var so:SharedObject = SharedObject.getLocal(storageName);
// Store the data
so.data.userName = userName;
so.flush();
Where does it actually saved on my hard disk (in windows vista operating system).
10x,
Liorhttp://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Live Docs_Book_Parts&file=lsos_087_3.html
The term local refers to the location of the shared object.
In this case, Adobe Flash Player stores the SharedObject file locally
in the client's home directory.
When you create a shared object, Flash Player creates a new
directory for the application and domain. It also creates an empty
*.sol file that stores the SharedObject data. The default location of
this file is a subdirectory of the user's home directory. On Windows,
this directory is the following by default:
c:/Documents and Settings/username/user_domain/Application Data/Macromedia/Flash Player/web_domain/path_to_application/ApplicationName/objectName.sol
If you request an application named MyApp.mxml on the local host, in the Flex context, and within a subdirectory named /sos, Flash Player stores the *.sol file in the following location on Windows:
c:/Documents and Settings/username/user_domain/Application Data/Macromedia/Flash Player/#localhost/flex/sos/MyApp.mxml.swf/objectName.sol -
How to write data to another application shared object?
I have login application(login.swf), of which saves user login data to page shared object. After login In main application(another swf), user is able to change password. How do I write new password to login.swf file shared object?
Thank you!Hi Dharmendra,
It looks like your report should fill up to the Nth column with empty spaces.
Could you please check the [ABAP forum|ABAP Development; for more information about this matter?
Thanks and regards,
Cristiano -
While updating, I got:
[2013-05-05 19:31] [PACMAN] upgraded cups-filters (1.0.34-2 -> 1.0.34-3)
[2013-05-05 19:31] [ALPM-SCRIPTLET] gtk-update-icon-cache: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
[2013-05-05 19:31] [PACMAN] upgraded dia (0.97.2-4 -> 0.97.2-5)
[2013-05-05 19:32] [ALPM-SCRIPTLET] gtk-update-icon-cache: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
[2013-05-05 19:32] [PACMAN] upgraded firefox (20.0.1-2 -> 20.0.1-4)
[2013-05-05 19:32] [PACMAN] upgraded gcc-multilib (4.8.0-3 -> 4.8.0-4)
[2013-05-05 19:32] [PACMAN] upgraded gd (2.0.36RC1-5 -> 2.0.36RC1-6)
[2013-05-05 19:32] [ALPM-SCRIPTLET] g_module_open() failed for /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: libpng15.so.15: cannot open shared object file: No such file or directory
[2013-05-05 19:32] [PACMAN] upgraded gdk-pixbuf2 (2.28.1-1 -> 2.28.1-2)
[2013-05-05 19:32] [PACMAN] upgraded gegl (0.2.0-7 -> 0.2.0-8)
[2013-05-05 19:32] [PACMAN] upgraded ghostscript (9.07-1 -> 9.07-2)
[2013-05-05 19:32] [ALPM-SCRIPTLET] g_module_open() failed for /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: libpng15.so.15: cannot open shared object file: No such file or directory
[2013-05-05 19:32] [PACMAN] upgraded libwmf (0.2.8.4-9 -> 0.2.8.4-10)
I opened the /var/lib/pacman/local/*/files of the mentioned packages and ran the mentioned commands with sudo. Today I got the following error while starting Wireshark (and gnuplot):
(gnuplot:8581): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported
Segmentation fault (core dumped)
(wireshark:8440): GdkPixbuf-WARNING **: Error loading XPM image loader: Image type 'xpm' is not supported
ERROR:stock_icons.c:229:stock_icons_init: assertion failed: (pixbuf)
Aborted (core dumped)
It turns out that /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache was created with permissions 640 (due to my umask). The solution was to chmod 644 it.
(similarly, gtk-update-icon-cache created /usr/share/icons/hicolor/icon-theme.cache with wrong permissions (640). This did not seem to cause issues though.)
Hopefully it will be of help to someone.
Last edited by Lekensteyn (2013-05-06 14:57:47)I also got into problems after a pacman -Syu today.
I believe removing cleartype-cairo and installing cairo instead fixed the problem
Hope this helps.
As a reference, here are some troubleshooting steps I did:
sudo pacman -S gdk-pixbuf2
warning: gdk-pixbuf2-2.28.1-2 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...
Packages (1): gdk-pixbuf2-2.28.1-2
Total Installed Size: 3.67 MiB
Net Upgrade Size: 0.00 MiB
:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [###################################################################################] 100%
(1/1) checking package integrity [###################################################################################] 100%
(1/1) loading package files [###################################################################################] 100%
(1/1) checking for file conflicts [###################################################################################] 100%
(1/1) checking available disk space [###################################################################################] 100%
(1/1) reinstalling gdk-pixbuf2 [###################################################################################] 100%
g_module_open() failed for /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: libpng15.so.15: cannot open shared object file: No such file or directory
$ pkgfile /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
extra/librsvg
$ yaourt -Sb librsvg
CCLD rsvg-view-3
/usr/bin/ld: warning: libpng15.so.15, needed by /usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/../../../../lib/libcairo.so, not found (try using -rpath or -rpath-link)
$ pkgfile libcairo.so
extra/cairo
multilib/lib32-cairo
[nemo@ilnwadz ~]$ sudo pacman -S cairo
resolving dependencies...
looking for inter-conflicts...
:: cairo and cairo-cleartype are in conflict. Remove cairo-cleartype? [y/N] ^C
Interrupt signal received -
error while loading shared libraries: librt.so.1: cannot open shared object
I cant run my apache server v2.2.3.
Can someone help me?
thanks in advanceThat could be an accessibility issue. Check the user with whom you installed Apache server. Check the user has permissions to access the libraries.
-Mahendra. -
How to Get property values from Shared Object in client's load event - Very urgent
I am using shared object to share data between two users. First user connect to shared object and set some value in shared object. Please consider that second user has not connected with the shared object yet.
Now when second user connects to the server and try to get that property set by first user, he could get shared object but could not get properties of Shared object set by first user. I observed few times that Second user can get these properties within "Sync" event between two users. But I would like to get these values for Second user in any stage (i.e. in load event etc.). Whenever Second user tries to get the property of Shared object, the object will reset the actual property value and then return reset value.
Anyone faced such issue while using shared object between two users. If so, I would appreciate if you could let me know your suggestions for following questions:
1) Is there any way to get all the properties of shared object before sync event called, as I want to get it immediately when second user connect to the application and perform next task based on the values stored in shared object.
2) Is it possible for second user to check whether any property has been set by first user? So that second user can use the property instead of reset it.
Any kind of help would be greatly appreciated.
Thank You.I am using shared object to share data between two users. First user connect to shared object and set some value in shared object. Please consider that second user has not connected with the shared object yet.
Now when second user connects to the server and try to get that property set by first user, he could get shared object but could not get properties of Shared object set by first user. I observed few times that Second user can get these properties within "Sync" event between two users. But I would like to get these values for Second user in any stage (i.e. in load event etc.). Whenever Second user tries to get the property of Shared object, the object will reset the actual property value and then return reset value.
Anyone faced such issue while using shared object between two users. If so, I would appreciate if you could let me know your suggestions for following questions:
1) Is there any way to get all the properties of shared object before sync event called, as I want to get it immediately when second user connect to the application and perform next task based on the values stored in shared object.
2) Is it possible for second user to check whether any property has been set by first user? So that second user can use the property instead of reset it.
Any kind of help would be greatly appreciated.
Thank You. -
Add ABAP program: validating package - error accessing shared objects-area
When adding a new program or browsing the packages in eclipse i get an "error accessing shared objects-area".
I can edit, save and run existing ABAP reports, however.
There was a similar problem here, regarding database procedure proxies but the solution doesn't apply to my problem, i guess. The solution was about creating the shared memory area CL_RIS_SHM_AREA. I can't access the memory area and start the constructor, as it doesn't show up on the monitor.
ADT 2.28
Eclipse 4.3
Netweaver 7.31 SP4 -> is this really compatible with ADT 2.28?
Thanks in advance for helpful hints,
JulianHI Julian,
if the area doesn't show up in the monitor, please try to start the constructor in transaction SHMM on your own by selecting the icon 'Start Constructor' as shown in the screenshot.
Choose CL_RIS_SHM_AREA as area, select 'Default Instance' and 'Dialog' as execution mode. Then press 'Create'. Either this works or the system will tell you the issue with the instance creation (e.g. insufficient shared objects memory - see the other solution description).
Best regards, Sebastian -
Imlementing synchronized access to shared objects in LabVIEW OOP
Many objects in object-oriented programming have an
identity, such as a file, a front-panel object or a hardware device.
These objects cannot be modelled using present LabVOOP (LabVIEW Object Oriented Programming) objects as
LabVOOP objects gets copied as wire is branched; multiple different
wires cannot all represent a single object. This issue has been
irritating the community of LabVIEW users since the release of LabVOOP
a few months ago.
It seems that there is a huge demand for
objects with unique identity i.e. by-reference objects in LabVIEW. The
central problem why LabVOOP propably doen't have these objects is the
difficulty in implementing synchronized access to these objects from
multiple parallel threads. The problem of synchronized access can be
divided into two different separate topics. First how the
sychronization should be implemented in LabVIEW runtime engine. Second
how this synchronization mechanism should be visible to the developer.
I'd like to start this thread to discuss these two issues.
Synhronization under the hood
Traditionally
people talk about locking of an object and about get-modify-set pass
when accessing the object. Locking is traditionally done by acquiring a
mutex for an object, modifying the object and releasing the mutex so
that other threads can access the same object instance. This is how
inter-thread synchronization is traditionally done. However, besides
the mutex based locking, the computer science community has innovated
also different kinds of methods on synchronizing the access to objects.
One way to get object-level synchronization is modify the
runtime engine so that it only allows a single method of a synchronized
object to run at any time. This mechanism of syncrhonization is
implemented in programming languages like O'Haskell, which is a Haskell
variant with object orirented features.
Also different
transactional mechanisms[1,2] have been successful. In transactional
mechanisms multiple threads are allowed to access a synchronized object
simultaneously. As each method accessing an object commits their
changes, they verify that no other object has modified the object
simultaneously in a manner than would break the transaction. If such a
modification has occurred, everything is rolled back. Transactional
mechanism do not suit to every possible situation as not everything can
be rolled back. For example it's hard to roll back an action that
somehow modifies the physical world.
User experience of synchronization
How
the synchronization is generally implemented in LabVIEW shouldn't be
directly visible to the developer end-user. The developer should
understand the general concepts of synchronization to take full
advantage of it, but in general the synhronization mechanism should be
integrated directly to development environment. There should in general
be no need to acquire a mutex by calling acquire mutex node but instead
the end-user should be able to specify which data needs synhronized
access in more sophisticated way.
In the following I propose a
mechanism of integrating the synchronized access of by-ref objects to
the development environemnt of LabVIEW. The proposal is very
preliminary but I hope it breaks the ice and the community would start
innovating in how should NI implement the syncrhonization support in
the user interface of LabVIEW.
Wire level synchronization
Only
methods can access object private data members. In synchronized access
to the object, it's the methods accessing the private data members that
need to be synchronized. The private data members are accessed by
applying unbundle node to the class wire and data is written back to
the object using bundle node.
What I propose is the following.
An unbundle node could either be normal or "synchronized". A
synchronized unbundle would guarantee the access to the private data
members in synchronized manner. All data wires originating from
synchronized unbundle would be of synchronized type, in a little
similar manner as a dynamic dispatch wire is of special dynamic
dispatch type. Such a wire must evetually be connected to a bundle
node. When the wire is bundled back to the originating object, the
synchronization requirement is released.
These synchronized
wires would look somewhat different from normal wires so that the
developer instantly knows that the wire is synchronized. The developer
can branch the wire, but only one wire branch can own the synchronized
type. The developer could easily select which wire would be
syncrhonized by Ctrl+clicking the wire. Such a wire can be considered
as a combination of a data and a mutex, even though mutexes don't need
to be the underlying synchronization method. The wire just guarantees
that there is a mechanism in the runtime engine that makes sure the
access to the wire data is synchronized.
There is a need to wire
data originating from a non-synchronized wire to a synchronized wire so
that it can replace the private data member of the class. This is
accomplished with a new node similar to bundle node, that would allow
replacing the data in a syncrhonized wire with some data originating
from a non-synchronized wire.
The synchronized wire can be
connected to a front panel controls of special syncrhonized type. This
way the synchronized wire can originate from a method and allow passing
the synchronized data to the calling VI and back to another method.
This is practical for example in a situation when the developer wants
to run different analyzes to a data class but don't want to rewrite all
the existing data analysis tools as class members. So the developers
writes a syncrhonization acquiring getData method that let's the
calling VI to access the syncrhonized data. Then the developer passes
this data to an analysis VI and passes the result back to a setData
method that writes the result back to the class wire.
There
will probably be technical problems in allowing the user to connect
such a synchronized wire to all existing VIs since these VIs. Therefore
the programming model for all nodes that do not support such
synchronized wires will be branching the wire and passing the
non-synchronized wire branch to the node and then bundling the result
back to the synchronized wire.
To increase performance and
decrease unnecessary buffer copies when a syncrhonized wire is
branched, if the syncrhonized wire continues directly to the new bundle
synchronized wire node, no buffer copy is made.
Discussion
The
syncrhonized access to a by-ref LabVOOP objects can be implemented in
multiple ways by National Instruments. The synchronized access should
be divided to two different and independent parts: 1) the user
experience of synchronization and 2) the runtime engine synchronization
mechanisms. As LabVOOP objects have special properties compared to
other LabVIEW data types, optimal user experience can be gained by
designing the user experience specifically for LabVOOP objects. From
user experience point-of-view this syncrhonization mechanism may not
work for other data types. Separating object syncrhonization from
synchronization of other data types is advantageous also for other
reasons. Due to the fact that object data can only be accessed via
object methods, more advanced synchronization methods may be used with
objects than can be used with other data types. O'Haskell
synchronization implementation is an example of this. Integrating the
synchronization directly to the user interface allows NI to change the
mehcanisms under the hood, when computer science comes up with more
advanced methods. Therefore NI could begin with traditional and quite
easy mutex-based synchronization and later move to more advanced
perhaps transaction based syncrhonization methods or even combinations
of multiple different methods.
I hope this topic generates
discussion that would help NI to implement an excellent synchronization
mechanism in LabVOOP. I hope that all talented individuals in the
community participate this discussion to help NI to reach this goal. I
also hope that if you just have time, it would be great if you could
surf the computer science resources to find out what kinds of new
techniques there exists for synchronizing access to shared resources. A
Large community may find much more innovative solutions than a few engineers at NI. Let's give NI the power of open source design
Tomi MailaHello Tomi,
First, thank you for taking the time to write such a well
though-out suggestion. Are you familiar
with the “LabVIEW Object-Oriented Programming: The Decisions Behind the Design”
document? I think the reason we chose to implement a ‘by
value’ strategy, is that is more in line with the LabVIEW programming paradigm
of dataflow, and would make sense to most of our LabVIEW users.
I think your suggestion is interesting, and it does
highlight the need to think outside of the conventional LabVIEW box and look to
some of the innovative things other languages do. However, I think we all agree that
synchronization takes careful planning and extra work for the programmer. Even with an ‘ideal’ solution I see no way
around this. For LabVIEW users today,
one great way to get synchronized ‘by reference’ semantics with your objects is
to use a single-element queue to pass your object. The queue itself is passed ‘by reference’ and
is inherently synchronized! The does
have the disadvantage of adding one more small layer of complexity to your
program, but some complexity would have to be introduced in any situation. The other disadvantage with this is that it
is not always an intuitive way to implement your program and requires some
amount of LabVIEW knowledge before one would generally come across this
technique.
In any case, I appreciate the time and effort you put in to
your suggestion. Please make sure that
you submit the suggestion formally through the NI Product Suggestion Center so
that it can be reviewed by some of the decision makers here.
Thanks again,
Travis M
LabVIEW R&D
National Instruments -
Help with shared objects...again...
Okay, I've been looking at a really good tutorial for shared objects in AS2, and I think I've gotten the basic concept down of how they work... now the problem lies in just integrating it into what I already have, which is making my brain hurt. Basically its for a quiz game, which will have a dynamic scoreboard. I want the scores in the shared object to update when the submit button is pressed, and then have the new values loaded into text boxes. Displaying the values is going to be the easy part, its just updating them is what my brain doesnt want to wrap itself around. Here is the array I have at the moment (yes, horribly inefficient, but the last time I actually did any coding before this was over 2 years ago when I was still a computer science major... with all of 4 actual Comp Sci courses under my belt -_-)
scores= new Array();
names= new Array();
insert=function() {
var newscore;
var newname;
newscore=0
newscore=_global.correct;
if (newscore > scores[0]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=scores[7];
scores[7]=scores[6];
scores[6]=scores[5];
scores[5]=scores[4];
scores[4]=scores[3];
scores[3]=scores[2];
scores[2]=scores[1];
scores[1]=scores[0];
scores[0]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=names[7];
names[7]=names[6];
names[6]=names[5];
names[5]=names[4];
names[4]=names[3];
names[3]=names[2];
names[2]=names[1];
names[1]=names[0];
names[0]=newname;
else if (newscore > scores[1]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=scores[7];
scores[7]=scores[6];
scores[6]=scores[5];
scores[5]=scores[4];
scores[4]=scores[3];
scores[3]=scores[2];
scores[2]=scores[1];
scores[1]=newscore
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=names[7];
names[7]=names[6];
names[6]=names[5];
names[5]=names[4];
names[4]=names[3];
names[3]=names[2];
names[2]=names[1];
names[1]=newname;
Continues all the way down to scores[14]
Now, if I wanted this to pull data from the shared object, would I just put user_so.score[3]=user_so.score[2] for instance? Or would I run the array and just update the new valued individually once the array insertion function completes? THe problem with the latter is that it's not directly accessing the shared object so I'd need to find a way to pull them out into other variables first, and this is about the point where my brain just decides to short out on me and stop working alltogether...yay...
So yea, any help on this would be much appreciated.
also, would the array have to be declared within the shared object as well? If so, how would I do that exactly? Probably something so simple but the fact that it's shared objects is throwing me off...Ok, the shared object WAS working just fine until I had the banner start referencing it. Then the quiz began giving me syntax errors like crazy, and even when the banner isnt runnit it gives me issues.
user_so.data.soArray[0]=scores[0];
user_so.data.soArray[1]=scores[1];
user_so.data.soArray[2]=scores[2];
user_so.data.soArray[3]=scores[3];
user_so.data.soArray[4]=scores[4];
user_so.data.soArray[5]=scores[5];
user_so.data.soArray[6]=scores[6];
user_so.data.soArray[7]=scores[7];
user_so.data.soArray[8]=scores[8];
user_so.data.soArray[9]=scores[9];
user_so.data.soArray[10]=scores[10];
user_so.data.soArray[11]=scores[11];
user_so.data.soArray[12]=scores12];
user_so.data.soArray[13]=scores[13];
user_so.data.soArray[14]=scores[14];
_global.player= "Input Name";
player.text=_global.player;
_global.correct= 0;
phrase=" ";
gotoAndStop (1);
these are the lines it's telling me I need an on handler for, which I do have, at the very start of the entire code.
Ive counted the brackets and those seem to line up, but I'll double check again. The code is on the submit button itself (yes I know it's poor coding form, but this is how I learned it and what I'm used to, and since I'm on a bit of a time schedule now isn't the time to completely re-learn the proper conventions and etiquite of coding in flash).
on (release) {
if (user_so.data.tname!=undefined){
user_so.data.tname = _global.player;
user_so.data.newscore = _global.correct;
insert=function() {
var newscore;
var newname;
newscore=0
newscore=_global.correct;
if (newscore > scores[0]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=scores[7];
scores[7]=scores[6];
scores[6]=scores[5];
scores[5]=scores[4];
scores[4]=scores[3];
scores[3]=scores[2];
scores[2]=scores[1];
scores[1]=scores[0];
scores[0]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=names[7];
names[7]=names[6];
names[6]=names[5];
names[5]=names[4];
names[4]=names[3];
names[3]=names[2];
names[2]=names[1];
names[1]=names[0];
names[0]=newname;
else if (newscore > scores[1]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=scores[7];
scores[7]=scores[6];
scores[6]=scores[5];
scores[5]=scores[4];
scores[4]=scores[3];
scores[3]=scores[2];
scores[2]=scores[1];
scores[1]=newscore
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=names[7];
names[7]=names[6];
names[6]=names[5];
names[5]=names[4];
names[4]=names[3];
names[3]=names[2];
names[2]=names[1];
names[1]=newname;
else if (newscore > scores[2]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=scores[7];
scores[7]=scores[6];
scores[6]=scores[5];
scores[5]=scores[4];
scores[4]=scores[3];
scores[3]=scores[2];
scores[2]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=names[7];
names[7]=names[6];
names[6]=names[5];
names[5]=names[4];
names[4]=names[3];
names[3]=names[2];
names[2]=newname;
else if (newscore > scores[3]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=scores[7];
scores[7]=scores[6];
scores[6]=scores[5];
scores[5]=scores[4];
scores[4]=scores[3];
scores[3]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=names[7];
names[7]=names[6];
names[6]=names[5];
names[5]=names[4];
names[4]=names[3];
names[3]=newname;
else if (newscore > scores[4]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=scores[7];
scores[7]=scores[6];
scores[6]=scores[5];
scores[5]=scores[4];
scores[4]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=names[7];
names[7]=names[6];
names[6]=names[5];
names[5]=names[4];
names[4]=newname;
else if (newscore > scores[5]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=scores[7];
scores[7]=scores[6];
scores[6]=scores[5];
scores[5]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=names[7];
names[7]=names[6];
names[6]=names[5];
names[5]=newname;
else if (newscore > scores[6]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=scores[7];
scores[7]=scores[6];
scores[6]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=names[7];
names[7]=names[6];
names[6]=newname;
else if (newscore > scores[7]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=scores[7];
scores[7]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=names[7];
names[7]=newname;
else if (newscore > scores[8]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=scores[8];
scores[8]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=names[8];
names[8]=newname;
else if (newscore > scores[9]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=scores[9];
scores[9]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=names[9];
names[9]=newname;
else if (newscore > scores[10]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=scores[10];
scores[10]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=names[10];
names[10]=newname;
else if (newscore > scores[11]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=scores[11];
scores[11]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=names[11];
names[11]=newname;
else if (newscore > scores[12]) {
scores[14]=scores[13];
scores[13]=scores[12];
scores[12]=newscore;
names[14]=names[13];
names[13]=names[12];
names[12]=newname;
else if (newscore > scores[13]) {
scores[14]=scores[13];
scores[13]=newscore;
names[14]=names[13];
names[13]=newname;
else if (newscore > scores[14]) {
scores[14]=newscore;
names[14]=newname;
else {
user_so.data.tname = _global.player;
user_so.data.newscore = _global.correct;
scores[0]=user_so.data.newscore;
names[0]=user_so.data.tname;
user_so.data.soArray[0]=scores[0];
user_so.data.soArray[1]=scores[1];
user_so.data.soArray[2]=scores[2];
user_so.data.soArray[3]=scores[3];
user_so.data.soArray[4]=scores[4];
user_so.data.soArray[5]=scores[5];
user_so.data.soArray[6]=scores[6];
user_so.data.soArray[7]=scores[7];
user_so.data.soArray[8]=scores[8];
user_so.data.soArray[9]=scores[9];
user_so.data.soArray[10]=scores[10];
user_so.data.soArray[11]=scores[11];
user_so.data.soArray[12]=scores12];
user_so.data.soArray[13]=scores[13];
user_so.data.soArray[14]=scores[14];
_global.player= "Input Name";
player.text=_global.player;
_global.correct= 0;
phrase=" ";
gotoAndStop (1); -
Local Shared Object not working in Firefox 2
I'm using a local shared object in my flash animation so that
the animation plays only once per user visit. It works fine in IE
6/7, but doesn't work at all in FF (the movie still plays when I
refresh the homepage, or come back to the homepage from another
page).
This is what I'm using:
var my_so = SharedObject.getLocal("animationPlayed");
if (my_so.data.played == undefined)
my_so.data.played = true;
my_so.flush();
else
gotoAndStop(258);
} // end else if
clearLSO_btn.onRelease = function ()
my_so.clear();
stop ();
And this is the site:
http://qualitycateringforkids.com/default.aspx
Any ideas?
Thanks
RKBoth of these load no problems in my FF3
-
Shared Object not working in FF 2.0
Hi all,
anyone with experience with Shared Object finding issues
getting it to work
with FireFox?
var my_so:SharedObject = SharedObject.getLocal("visited",
if (my_so.data.newVisitor != undefined) {
//object exists: return user
_root.gotoAndStop("skip");
} else {
//object doesn't exist: new user
my_so.data.newVisitor = "no";
my_so.flush();
_root.play();
It works fine in IE. Any insight is greatly appreciated.
-chris
Adobe Certified Expert
www.keyframer.com
www.mudbubble.com
(if you want to email me, don't look)Does your SCC timecode begin at 1 hr or 0 hr? If the former, try the latter.
-
Having problem displaying remote shared objects on flash
hi
I am using red5 flash server and at that side creating a shared object called chatSharedObject
For the client side,I am using openlaszlo platform, but using actionscript 3 classes for the shared object implementation. cilent application is connecting to the shared object on the red5 side successfully(as I see on the red5 logs).
here is the calling code snippet:
[CODE]
<button id="sendButton">send
<handler name="onclick" method="sendClicked" />
<method name="sendClicked" args="v=0">
if (message.text != "") {
//Debug.write("Message sent!");
classroot.writeSharedObject(message.text);
message.clearText();
message.setAttribute("text_y", 0);
</method>
</button>
<method name="writeSharedObject" args="message">
[B]//shared object send method is being called[/B]
this.send("writeMessage",loginScreen.getUsername(),message);
</method>
<!--this method writes the messages to the debug window which will be shown to all users-->
<method name="writeMessage" args="username, msg">
//Debug.debug(msg);
messageArea.addText(username+ " : "+msg+"\n");
</method>[/CODE]
When I generate the flash object and try to use this application, nothing is being displayed although there is no problem on this issue on the development enviroment. Problem causes when I try to run the swf10 flash object.
Is this maybe a flash security issue? Although I have added the corresponding locations as the trusted location on the flash settings manager. Still problem goes on. And I think this is not about the flash player, it might be a special problem about the flash object.
Couldn't find the solution for a week,
Any help would be appreciated.
Thanks in advance
Cemi can even gointo firefox and chrome and save the shared object. then open my i.e and see that object in the results page. but if i save the shared object in i.e it throws that error on the results page. So i'm pretty sure it must be the flushing of the object. Pasting my save code below:
function makeResult(evt:MouseEvent):void{
var flushstatus:String = new String();
gSo.data.o = o;
gSo.data.c = c;
gSo.data.t = t;
gSo.data.c = v;
gSo.data.u=uid;
flushstatus = gSo.flush();
if (flushstatus != null) {
switch (flushstatus) {
case SharedObjectFlushStatus.PENDING: //this is incase the user doesnt have enough space
gSo.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
break;
case SharedObjectFlushStatus.FLUSHED:
redirect();
break;
function onFlushStatus(event:NetStatusEvent):void {
switch (event.info.code) {
case "SharedObject.Flush.Success":
gSo.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
redirect();
break;
case "SharedObject.Flush.Failed":
trace ("Shared object storage failed");
break;
function redirect() {
try{
var request:URLRequest = new URLRequest('../node/2');// i supply a base parameter to the swf so the redirect works
navigateToURL(request,"_self");
catch(error:Error){
trace ("Redirect failed"); -
// Server side
application.onAppStart = function()
// ... code here
application.users_so = SharedObject.get("users_so", false);
// ... more code here
application.onConnect = function(newClient, userID)
// client object properties being setup, etc
application.users_so.setProperty(userID, newClient);
// ... more code
application.acceptConnection(newClient);
// Client side
nc.connect(rtmpURL, userID);
users_so = SharedObject.getRemote("users_so", nc.uri, false);
users_so.connect(nc);
When I call the above on the client side I should receive a
copy of all users that are stored in the server's shared object
indexable by users_so.data[userID] correct?
on the server side I perform the following:
application.acceptConnection(newClient);
newClient.call("updateStatus", null, userID);
on the client side the updateStatus method looks like this:
nc.syncQuestions = function(userID:String)
trace("--> "+users_so.data[userID]+" <--");
}; (is the ';' necessary?!?)
this prints: --> undefined <--
WHY?!? :( --> is this because of a race condition between
the nc.connect() and the users_so.connect() ??
NOTE: My problem seems to arise when I try to re-connect
(i.e. connect w/ client, close client, re-open client)
CheersI have the feeling it's a timing problem because you're not
waiting for the onStatus event from the netconnection before you
connect the shared object.
Try adding an onStatus handler to your netconnection, and
wait for a code of "NetConnection.Connect.Success". Then connect
your shared object.
Maybe you are looking for
-
XML Data Inserts into Tables???
hi there, will i be able to an insertXML call onto a table wherein i need to just insert a few node values into couple of fields in the table and leave the other fields unpopulated? - aka - i need to grab the node values from the XML file and then st
-
Ipod nano 6th gen not recognised at all in itunes or windows
Nano was recognised as a device first two times i used it but now not recognised in itunes or in my computer as an ipod. Followed various help suggestions but no change. Does t need software restoring and if so how if not recognised in itunes?
-
Need some help in building a Link Query
Hi, I am having a scenario where the dataset looks like as below: Table Test containts the following values ================================ 100 200 200 300 200 300 200 400 400 100 100 400 i want to display the following string dynamically from the a
-
Dear all, Who configures the bank key in IT0009? HR people or FICO? If it's our work, dindly let me know the process. Otherwise I can ask FI people. Regards ET
-
I have created a PDF file with password protection. The Clip to Clipboard is grayed out but I can highlight it and copy it. Why? I am viewing the file in Adobe Reader 9.1.3