topical media & game development

talk show tell print

student-mashup-youtube-video.mx

student-mashup-youtube-video.mx [swf] [flash] flex


  <?xml version="1.0" encoding="utf-8"?>
  <mx:Application 
          xmlns:mx="http://www.adobe.com/2006/mxml"
          xmlns:local="*" 
          xmlns:flvc="*"
          xmlns:nlcontrols="nl.fxc.controls.*"
          xmlns:controls="com.fxcomponents.controls.*" 
          initialize="Security.loadPolicyFile('http://i.ytimg.com/crossdomain.xml')" 
          backgroundColor="black"
           creationComplete="serviceSelectedInt=1"
          layout="vertical" >
          
  <mx:Style>
          
  DataGrid {
          backgroundAlpha: 0.5;
      headerColors: #000000, #999999;
      letterSpacing: 0;
      rollOverColor: #000000;
      textRollOverColor: #ffffff;
      borderThickness: 0;
      textIndent: 5;
      headerStyleName: "mydataGridHeaderStyle";
  }
  
  .mydataGridHeaderStyle {
      color: #ffffff;
  }
  
  TextInput {
      backgroundColor: #cccccc;
      color: #000000;
      textAlign: left;
      dropShadowEnabled: true;
      dropShadowColor: #666666;
  }
  
          
  Application {
           backgroundImage: Embed(source="student-mashup-youtube-assets-backgrounds-GU200-350A.jpg");
           color: #ffffff;
  }        
          
          
          
          
          black-face {
              src:url("student-mashup-youtube-assets-arial.ttf");
              font-family: Arial;
          }
  
      </mx:Style>
          
          <mx:Script>
                  <![CDATA[
                  
                          /*
                                  Algemene opmerking: in onderstaande code worden integers 
                                  gebruikt om services aan te duiden.
                                  1= Youtube
                                  2= AOL
                                  3= Yahoo 
  			*/
                          
                          //import FLVConstructor;
                          
                          import mx.collections.XMLListCollection;
                          import mx.collections.ArrayCollection;
                          import mx.rpc.events.ResultEvent;
                          import mx.rpc.http.HTTPService;
                          
                      import flash.events.Event;
                      import flash.events.TimerEvent;
                      import flash.utils.Timer;
  
                          namespace atom = "http://www.w3.org/2005/Atom"; 
                          namespace media = "http://search.yahoo.com/mrss/";
                          use namespace atom;
                          use namespace media;
                          
                          
                          [Bindable]private var query:String;
                          [Bindable]private var ytQuery:String;
                          
                          [Bindable]private var serviceSelectedInt:int;
                          [Bindable]private var serviceSelectedString:String;
                          
                          [Bindable]private var youtubeArray:XMLListCollection;
                          [Bindable]private var aolArray:ArrayCollection;
                          [Bindable]private var yahooArray:ArrayCollection;
                          
                          
                   private function selectService(event:Event):void {
                      datagridViewstack.selectedIndex=event.currentTarget.selectedIndex;
                    
              if(event.currentTarget.selectedItem.int==1){
                              serviceSelectedInt=1;
                               youtube.send();
                      } 
                         else if(event.currentTarget.selectedItem.int==2){
                              serviceSelectedInt=2;
                              
                              if (dg_youtube!=null){
                              aol.send();
                              }
                      }
                      else //if(event.currentTarget.selectedItem.int==3){
                              serviceSelectedInt=3;
                              yahoo.send();
               
                   }
                          
                          
                          private function DataHandler(event:ResultEvent,service:int):void
                          {
                                  if(service==1){
                                          //youtubeArray = event.result.rss.channel.item;
                                  }else if(service==2){
                                          aolArray = event.result.Response.VideoSet.Video;
                                  }else if(service==3){
                                          yahooArray = event.result.ResultSet.Result;
                                  }
                          }
                          
                          private function faultHandler(event:mx.rpc.events.FaultEvent):void
                          {
                                  var faultInfo:String= "fault description:" + "\n\n";
                                  faultInfo+="fault.faultString:" + event.fault.faultString+"\n\n";
                                  mx.controls.Alert.show(faultInfo, "Fault Information"); 
                                  var eventInfo:String="event target:" + event.target + "\n \n";
                                  eventInfo += "event type:" + event.type + "\n\n"; 
                                  mx.controls.Alert.show(eventInfo, "Event Information");        
                          }
                          
                          private function fillGrid():void
                          {
                                  //sla de zoekqueries op in var
                                  query=searchBox.text;
                                  ytQuery="'"+searchBox.text+"'";
                                  
                                  //vul de HTTPRequests
                                  youtube.send();
                                  aol.send();
                                  yahoo.send();
                                  
                                     
                            } 
                                  
  
                            
                            private function onTimerComplete(evt:Event):void
                            {
                                    fxVideoDisplay.source=flvConstructor.resultURL
                            }
                            
                            
                            private function clickHandler(event:MouseEvent):void
                            {
                              if(serviceSelectedInt==1){
                                        //zorg ervoor dat youtubeUrl naar flv verwijst ipv swf
                                        
                                        //flvConstructor.inputURL=youtubeUrl.text;
                                        flvConstructor.inputURL=dg_youtube.selectedItem.group.content[0].@url
                                        flvConstructor.startLoading();
                                          var minuteTimer:Timer = new Timer(1000, 1);
                                          minuteTimer.start();
                                          minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
                                        //ytResult=flvConstructor.resultURL;
                                        //fxVideoDisplay.source=ytResult;
                                        
                                }
                                else if(serviceSelectedInt==2){
                                        //fxVideoDisplay.source=aolUrl.text;
                                        fxVideoDisplay.source=dg_yahoo.selectedItem.videoUrl;
                                }
                                else //if(serviceSelectedInt==3)
                                        //fxVideoDisplay.source=yahooUrl.text;
                                        fxVideoDisplay.source=dg_aol.selectedItem.Url;
                            }                 
  
                  
                           
                  ]]>
          </mx:Script>
  
      
      
  <flvc:student_mashup_youtube_components_FLVConstructor id="flvConstructor" />
      
   <mx:HBox id="menu" height="150" width="787">
                   <mx:Image source="student-mashup-youtube-assets-logo-white-small.png" />
                     <mx:TextInput id="searchBox" enter="fillGrid()"/>
                    <mx:Button label="Search" id="searchButton" click="fillGrid()"/>
   
          <mx:ComboBox 
                  change="selectService(event)"
                  >
                  <mx:dataProvider>
                          <mx:ArrayCollection>
                                   <mx:Object label="Youtube" int="1"/>
                           <mx:Object label="AOL" int="2"/>
                           <mx:Object label="Yahoo" int="3"/>
                          </mx:ArrayCollection>
              
              </mx:dataProvider>        
          </mx:ComboBox>    
      
  
   </mx:HBox>    
           
    
           <mx:HTTPService id="youtube"
                   url="http://gdata.youtube.com/feeds/videos?format=1&start-index=1&max-results=20&alt=rss&vq={ytQuery}" 
                   fault="faultHandler(event)"
                  resultFormat="e4x"
                   result="DataHandler(event,1)" 
                    />
          
           <mx:HTTPService id="aol"
                   url="http://xml.truveo.com/apiv3?appid=1x1jhj64466mi12ia&method=truveo.videos.getVideos&query=:{query}"
                   fault="faultHandler(event)"
                   result="DataHandler(event,2)"
                   />
  
           <mx:HTTPService id="yahoo" 
                   url="http://search.yahooapis.com/VideoSearchService/V1/videoSearch?appid=YahooDemo&query={query}&results=20"
                   fault="faultHandler(event)"
                   result="DataHandler(event,3)"
                   />         
           
  
  <mx:HBox>
  
  <mx:VBox>
          
           <mx:Label text="{fxVideoDisplay.state}"/>
          <controls:FXVideo id="fxVideoDisplay"
                  enableSmoothing="true" 
                  autoPlay="true" 
                  width="480" 
                  height="360" 
                  bufferTime="0" 
                  />
  
  </mx:VBox>
  
   
  
  <mx:VBox>
  
  <mx:ViewStack id="datagridViewstack">
          
  <mx:VBox id="YoutubeView">
           <mx:DataGrid id="dg_youtube"
                  click="clickHandler(event)" 
                  dataProvider="{youtube.lastResult.channel.item}" 
                  width="300" 
                  height="400"
                  >
                  <mx:columns>
                             <mx:DataGridColumn headerText="YouTube Results" dataField="title"/>
                     </mx:columns>
     </mx:DataGrid>
  </mx:VBox> 
  <mx:VBox id="AOLView">
            <mx:DataGrid id="dg_aol"
                     click="clickHandler(event)" 
                     dataProvider="{aol.lastResult.Response.VideoSet.Video}" 
                     width="300" 
                     height="400"
                  >
                  <mx:columns>
                             <mx:DataGridColumn headerText="AOL Results" dataField="title"/>
                             <mx:DataGridColumn headerText="AOL Media Format" dataField="formats"/>
                     </mx:columns>
     </mx:DataGrid>
  </mx:VBox>
  <mx:VBox id="YahooView"> 
          <mx:DataGrid id= "dg_yahoo"
                  click="clickHandler(event)"
                  dataProvider="{yahoo.lastResult.ResultSet.Result}" 
                  width="300" 
                  height="400"
                  >
                  <mx:columns>
                             <mx:DataGridColumn headerText="Yahoo Results" dataField="Title"/>
                             <mx:DataGridColumn headerText="Yahoo Media Format" dataField="FileFormat"/>
                     </mx:columns>
     </mx:DataGrid>
  </mx:VBox>            
  </mx:ViewStack>
                             
  
  <!--<mx:Image source="{dg_aol.selectedItem.thumbnailUrl}"/> -->
  
  </mx:VBox>
   
   
   </mx:HBox>
  
  </mx:Application>
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.