root / trunk / web / dojo / dojox / flash / ExpressInstall.as
History | View | Annotate | Download (2.33 KB)
1 |
/** |
---|---|
2 |
* Based on the expressinstall.as class created by Geoff Stearns as part |
3 |
* of the FlashObject library. |
4 |
* |
5 |
* Use this file to invoke the Macromedia Flash Player Express Install functionality |
6 |
* This file is intended for use with the FlashObject embed script. You can download FlashObject |
7 |
* and this file at the following URL: http://blog.deconcept.com/flashobject/ |
8 |
* |
9 |
* Usage: |
10 |
* var ExpressInstall = new ExpressInstall(); |
11 |
* |
12 |
* // test to see if install is needed: |
13 |
* if (ExpressInstall.needsUpdate) { // returns true if update is needed |
14 |
* ExpressInstall.init(); // starts the update |
15 |
* } |
16 |
* |
17 |
* NOTE: Your Flash movie must be at least 214px by 137px in order to use ExpressInstall. |
18 |
* |
19 |
*/ |
20 |
|
21 |
class ExpressInstall{ |
22 |
public var needsUpdate:Boolean; |
23 |
private var updater:MovieClip; |
24 |
private var hold:MovieClip; |
25 |
|
26 |
public function ExpressInstall(){ |
27 |
// does the user need to update? |
28 |
this.needsUpdate = (_root.MMplayerType == undefined) ? false : true; |
29 |
} |
30 |
|
31 |
public function init():Void{ |
32 |
this.loadUpdater(); |
33 |
} |
34 |
|
35 |
public function loadUpdater():Void{ |
36 |
System.security.allowDomain("fpdownload.macromedia.com"); |
37 |
|
38 |
// hope that nothing is at a depth of 10000000, you can change this depth if needed, but you want |
39 |
// it to be on top of your content if you have any stuff on the first frame |
40 |
this.updater = _root.createEmptyMovieClip("expressInstallHolder", 10000000); |
41 |
|
42 |
// register the callback so we know if they cancel or there is an error |
43 |
var _self = this; |
44 |
this.updater.installStatus = _self.onInstallStatus; |
45 |
this.hold = this.updater.createEmptyMovieClip("hold", 1); |
46 |
|
47 |
// can't use movieClipLoader because it has to work in 6.0.65 |
48 |
this.updater.onEnterFrame = function():Void { |
49 |
if(typeof this.hold.startUpdate == 'function'){ |
50 |
_self.initUpdater(); |
51 |
this.onEnterFrame = null; |
52 |
} |
53 |
} |
54 |
|
55 |
var cacheBuster:Number = Math.random(); |
56 |
|
57 |
this.hold.loadMovie("http://fpdownload.macromedia.com/pub/flashplayer/" |
58 |
+"update/current/swf/autoUpdater.swf?"+ cacheBuster); |
59 |
} |
60 |
|
61 |
private function initUpdater():Void{ |
62 |
this.hold.redirectURL = _root.MMredirectURL; |
63 |
this.hold.MMplayerType = _root.MMplayerType; |
64 |
this.hold.MMdoctitle = _root.MMdoctitle; |
65 |
this.hold.startUpdate(); |
66 |
} |
67 |
|
68 |
public function onInstallStatus(msg):Void{ |
69 |
getURL("javascript:dojox.flash.install._onInstallStatus('"+msg+"')"); |
70 |
} |
71 |
} |