vinTagesworld flashCase

Maak zelf een flashCase item aan.


simpele fotogallerij
blokje door W0utah op 19-05-2008 om 6:44:51
Dit was eigenlijk meer om de classes in AS 3 onder de knie te krijgen maar ik dacht, laat ik het maar posten.

Dit is dus eigenlijk een hele simpele fotogallerij.

Om deze in je website te includen doe je gewoon dit:

actionscript code

import FotoGallery;

//FotoGallery(xml file, photo width, photo height, x position, y position);
var tester:FotoGallery = new FotoGallery("test.xml", 400, 200, 5, 5);
//setButtonStyle(color, radius);
tester.setButtonStyle(0x000000, 10);
//setTextStyle(color, size);
tester.setTextStyle(0xFFFFFF, 12);
this.addChild(tester);
 


En de code zelf

actionscript code

package {
  import flash.display.*;
  import flash.events.*;
  import flash.net.*;
  import flash.text.*;
  import flash.utils.*;

  public class FotoGallery extends MovieClip {
    private var loader:Loader = new Loader();
    private var buttonMc:MovieClip = new MovieClip();
    private var rect:MovieClip = new MovieClip();
   
    private var xmlLoader:URLLoader = new URLLoader();
   
    private var xml:XML;
    private var il:XMLList;
   
    private var url:String;
   
    private var xPosition:Number;
    private var yPosition:Number;
    private var total:Number;
    private var buttonStyleWidth:Number;
    private var buttonStyleColor:uint;
    private var iAlpha:uint
   
    private var myTf:TextFormat = new TextFormat();


    public function FotoGallery(file:String, rectWidth:Number, rectHeight:Number, xPos:Number, yPos:Number):void {
      url = file;
      xPosition = xPos;
      yPosition = yPos;

      rect.graphics.beginFill(0xFFFFFF);
      rect.graphics.lineStyle(1, 0x000000, 1, true);
      rect.graphics.drawRect(xPosition, yPosition, rectWidth + 1, rectHeight + 1);
      rect.graphics.endFill();
      this.addChild(rect);

      loadPics();
    }
    public function setButtonStyle(color, width:Number):void {
      buttonStyleColor = color;
      buttonStyleWidth = width;
    }
    public function setTextStyle(color, size):void {
      myTf.color = color;
      myTf.size = size;
    }
    private function loadPics():void {
      xmlLoader.addEventListener(Event.COMPLETE, loadXML);
      xmlLoader.addEventListener(ProgressEvent.PROGRESS, loadBar);

      xmlLoader.load(new URLRequest(url));
    }
    private function loadXML(e:Event):void {
      xml = new XML(xmlLoader.data);
      xml.ignoreWhitespace = true;
      il = xml.pic;

      loader.load(new URLRequest(il.url[0].text()));
      loader.x = xPosition + 1;
      loader.y = yPosition + 1;
      rect.addChild(loader);

      total = il.length();

      rect.addEventListener(MouseEvent.MOUSE_OVER, showButtons);
      rect.addEventListener(MouseEvent.MOUSE_OUT, hideButtons);

      createButtons();
    }
    private function createButtons():void {
      var beginX:Number = xPosition + 15;
      var beginY:Number = yPosition + 15;

      for (var i:Number = 0; i < total; i++) {
        var buttonText:TextField = new TextField();
        var button:MovieClip = new MovieClip();

        button.graphics.beginFill(buttonStyleColor);
        button.graphics.drawCircle(beginX, beginY, buttonStyleWidth);
        button.graphics.endFill();
        button.name = String(i);


        buttonText.x = beginX - 5;
        buttonText.y = beginY - 7;
        buttonText.text = String(i+1);
        buttonText.width = 10;
        buttonText.height = 15;
        buttonText.selectable = false;
        buttonText.name = String(i);
       
        buttonText.setTextFormat(myTf);

        button.addEventListener(MouseEvent.MOUSE_DOWN, changePic);
        buttonText.addEventListener(MouseEvent.MOUSE_DOWN, changePic);

        buttonMc.addChild(button);
        buttonMc.addChild(buttonText);

        beginX += 25;
      }
      rect.addChild(buttonMc);
      buttonMc.visible = false;
    }
    private function showButtons(Event:MouseEvent):void {
      buttonMc.visible = true;
    }
    private function hideButtons(Event:MouseEvent):void {
      buttonMc.visible = false;
    }
    private function changePic(Event:MouseEvent):void {
      clearInterval(iAlpha);
      var pic:Number = Event.currentTarget.name;

      loader.load(new URLRequest(il.url[pic].text()));
      loader.alpha = 0;

      iAlpha = setInterval(showLoader, 50);
    }
    private function showLoader():void {
      if (loader.alpha < 1) {
        loader.alpha += 0.1;
      } else {
        clearInterval(iAlpha);
      }
    }
    private function loadBar(e:Event):void {
     
    }
  }
}
 


Er heeft nog niemand een stem uitgebracht.
Reply
blokje door kabare08 op 25-09-2008 om 0:56:05
Hallo,
Ik ben enkele weken geleden begonnen met as3. Het zou heel fijn zijn als dit tutorial met compleet aanwijzig zijn. Heeft u misschien fla met xml map. Alvast Bedankt.

Groetjes



Je moet aangemeld zijn om te kunnen reageren.