123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- define("dojox/embed/Object", [
- "dojo/_base/kernel",
- "dojo/_base/declare", // dojo.declare
- "dojo/dom-geometry",
- "dijit/_Widget",
- "./Flash",
- "./Quicktime"
- ], function (dojo, declare, domGeometry, _Widget, Flash, Quicktime) {
- dojo.experimental("dojox.embed.Object");
- return dojo.declare("dojox.embed.Object", _Widget, {
- // summary:
- // A widget you can use to embed either a Flash or Quicktime
- // movie.
- //
- // example:
- // From markup:
- // | <div dojoType="dojox.embed.Object" src="path/to/movie.swf"></div>
- //
- // example:
- // Programmatic:
- // | var mov=new dojox.embed.Object({
- // | src: "path/to/movie.swf"
- // | }, node);
- //
- // width: Number?
- // The width of the movie. If not provided, the width of this.domNode is used.
- // height: Number?
- // The height of the movie. If not provided, the height of this.domNode is used.
- // src: String
- // The URL of the movie to embed.
- // movie: HTMLEmbed
- // The eventual reference to the movie embedded. If you are looking to script
- // control over the movie, you'd access it this way.
- // params: Object
- // A property bag that is created postCreate. Any additional attributes you
- // define on your domNode will be collected and placed into this, which will
- // then be passed to the movie constructor.
- // reFlash: RegExp
- // Expression used on the src property to determine if this is Flash or Quicktime.
- // reQtMovie: RegExp
- // Expression used on the src property to determine if this is Flash or Quicktime.
- // reQtAudio: RegExp
- // Expression used on the src property to determine if this is Flash or Quicktime.
-
- width: 0,
- height: 0,
- src: "",
- movie: null,
- params: null,
- reFlash: /\.swf|\.flv/gi,
- reQtMovie: /\.3gp|\.avi|\.m4v|\.mov|\.mp4|\.mpg|\.mpeg|\.qt/gi,
- reQtAudio:/\.aiff|\.aif|\.m4a|\.m4b|\.m4p|\.midi|\.mid|\.mp3|\.mpa|\.wav/gi,
-
- postCreate: function(){
- // summary
- // Constructs the movie and places it in the document.
- if(!this.width || !this.height){
- // get the width and height from the domNode
- var box=domGeometry.getMarginBox(this.domNode);
- this.width=box.w, this.height=box.h;
- }
- // the default embed constructor.
- var em=Flash;
- // figure out what kind of movie this is.
- if(this.src.match(this.reQtMovie) || this.src.match(this.reQtAudio)){
- em=Quicktime;
- }
- // loop through any attributes and set up our params object.
- if(!this.params){
- this.params={};
- if(this.domNode.hasAttributes()){
- // ignore list
- var ignore = {
- dojoType: "",
- width: "",
- height: "",
- "class": "",
- style: "",
- id: "",
- src: ""
- };
- var attrs=this.domNode.attributes;
- for(var i=0, l=attrs.length; i<l; i++){
- if(!ignore[attrs[i].name]){
- this.params[attrs[i].name]=attrs[i].value;
- }
- }
- }
- }
- // set up our arguments.
- var kwArgs={
- path: this.src,
- width: this.width,
- height: this.height,
- params: this.params
- };
- // set up the movie.
- this.movie=new (em)(kwArgs, this.domNode);
- }
- });
- });
|