source: Dev/trunk/src/client/dojox/embed/Object.js @ 513

Last change on this file since 513 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 2.9 KB
Line 
1define([
2        "dojo/_base/kernel",
3        "dojo/_base/declare",   // dojo.declare
4        "dojo/dom-geometry",
5        "dijit/_Widget",
6        "./Flash",
7        "./Quicktime"
8], function (dojo, declare, domGeometry, _Widget, Flash, Quicktime) {
9dojo.experimental("dojox.embed.Object");
10
11return declare("dojox.embed.Object", _Widget, {
12        // summary:
13        //              A widget you can use to embed either a Flash or Quicktime
14        //              movie.
15        // example:
16        //              From markup:
17        //      |       <div dojoType="dojox.embed.Object" src="path/to/movie.swf"></div>
18        // example:
19        //              Programmatic:
20        //      |       var mov=new dojox.embed.Object({
21        //      |               src: "path/to/movie.swf"
22        //      |       }, node);
23
24        // width: Number?
25        //              The width of the movie. If not provided, the width of this.domNode is used.
26        width: 0,
27
28        // height: Number?
29        //              The height of the movie. If not provided, the height of this.domNode is used.
30        height: 0,
31
32        // src: String
33        //              The URL of the movie to embed.
34        src: "",
35
36        // movie: HTMLEmbed
37        //              The eventual reference to the movie embedded.  If you are looking to script
38        //              control over the movie, you'd access it this way.
39        movie: null,
40
41        // params: Object
42        //              A property bag that is created postCreate.  Any additional attributes you
43        //              define on your domNode will be collected and placed into this, which will
44        //              then be passed to the movie constructor.
45        params: null,
46
47        // reFlash: RegExp
48        //              Expression used on the src property to determine if this is Flash or Quicktime.
49        reFlash: /\.swf|\.flv/gi,
50
51        // reQtMovie: RegExp
52        //              Expression used on the src property to determine if this is Flash or Quicktime.
53        reQtMovie: /\.3gp|\.avi|\.m4v|\.mov|\.mp4|\.mpg|\.mpeg|\.qt/gi,
54
55        // reQtAudio: RegExp
56        //              Expression used on the src property to determine if this is Flash or Quicktime.
57        reQtAudio:/\.aiff|\.aif|\.m4a|\.m4b|\.m4p|\.midi|\.mid|\.mp3|\.mpa|\.wav/gi,
58       
59        postCreate: function(){
60                // summary:
61                //              Constructs the movie and places it in the document.
62                if(!this.width || !this.height){
63                        //      get the width and height from the domNode
64                        var box=domGeometry.getMarginBox(this.domNode);
65                        this.width=box.w, this.height=box.h;
66                }
67
68                //      the default embed constructor.
69                var em=Flash;
70
71                //      figure out what kind of movie this is.
72                if(this.src.match(this.reQtMovie) || this.src.match(this.reQtAudio)){
73                        em=Quicktime;
74                }
75
76                //      loop through any attributes and set up our params object.
77                if(!this.params){
78                        this.params={};
79                        if(this.domNode.hasAttributes()){
80                                // ignore list
81                                var ignore = {
82                                        dojoType: "",
83                                        width: "",
84                                        height: "",
85                                        "class": "",
86                                        style: "",
87                                        id: "",
88                                        src: ""
89                                };
90
91                                var attrs=this.domNode.attributes;
92                                for(var i=0, l=attrs.length; i<l; i++){
93                                        if(!ignore[attrs[i].name]){
94                                                this.params[attrs[i].name]=attrs[i].value;
95                                        }
96                                }
97                        }
98                }
99
100                //      set up our arguments.
101                var kwArgs={
102                        path: this.src,
103                        width: this.width,
104                        height: this.height,
105                        params: this.params
106                };
107
108                //      set up the movie.
109                this.movie=new (em)(kwArgs, this.domNode);
110        }
111});
112});
Note: See TracBrowser for help on using the repository browser.