Flash AS3-XML Gallery编译错误

时间:2012-01-16 18:55:17

标签: xml flash actionscript

package  {

import flash.display.*;          
import flash.display.MovieClip;
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.events.*;
import flash.net.*;
import flash.events.Event; 
import flash.display.MovieClip;
import fl.controls.ProgressBar;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;


public class gallery extends MovieClip {


    public function gallery() {
        // constructor code


            var columns:Number;
            var my_x:Number;
            var my_y:Number;
            var my_thumb_width:Number;
            var my_thumb_height:Number;
            var my_images:XMLList;
            var my_total:Number;

            var container_mc:MovieClip;
            var preloaders_mc:MovieClip;
            var full_mc:MovieClip;

            var x_counter:Number = 0;
            var y_counter:Number = 0;

            var my_tweens:Array = [];
            var container_mc_tween:Tween;
            var full_tween:Tween;

            var myXMLLoader:URLLoader = new URLLoader();
            myXMLLoader.load(new URLRequest("gallery.xml"));
            myXMLLoader.addEventListener(Event.COMPLETE, processXML);

            function processXML(e:Event):void {
                var myXML:XML = new XML(e.target.data);

                columns = myXML.@COLUMNS;
                my_x = myXML.@XPOSITION;
                my_y = myXML.@YPOSITION;
                my_thumb_width = myXML.@WIDTH;
                my_thumb_height = myXML.@HEIGHT;
                my_images = myXML.IMAGE;
                my_total = my_images.length();

                createContainer();
                callThumbs();

                myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
                myXMLLoader = null;
            }

            function createContainer():void {
                container_mc = new MovieClip();
                container_mc.x = my_x;
                container_mc.y = my_y;
                addChild(container_mc);

                container_mc.addEventListener(MouseEvent.CLICK, callFull);
                container_mc.addEventListener(MouseEvent.MOUSE_OVER, onOver);
                container_mc.addEventListener(MouseEvent.MOUSE_OUT, onOut);
                container_mc.buttonMode = true;

                preloaders_mc = new MovieClip();
                preloaders_mc.x = container_mc.x;
                preloaders_mc.y = container_mc.y;
                addChild(preloaders_mc);
            }

            function callThumbs():void {
                for (var i:Number = 0; i < my_total; i++) {

                    var thumb_url = my_images[i].@THUMB;

                    var thumb_loader = new Loader();
                    thumb_loader.load(new URLRequest(thumb_url));
                    thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);

                    thumb_loader.name = i;

                    thumb_loader.x = (my_thumb_width+10)*x_counter;
                    thumb_loader.y = (my_thumb_height+10)*y_counter;

                    if (x_counter+1 < columns) {
                        x_counter++;
                    } else {
                        x_counter = 0;
                        y_counter++;
                    }
                    var preloader_pb:ProgressBar = new ProgressBar();
                    preloader_pb.source = thumb_loader.contentLoaderInfo;
                    preloader_pb.x = thumb_loader.x;
                    preloader_pb.y = thumb_loader.y;
                    preloader_pb.width = my_thumb_width;
                    preloader_pb.height = my_thumb_height;
                    preloaders_mc.addChild(preloader_pb);

                    preloader_pb.addEventListener(Event.COMPLETE, donePb);
                }
            }

            function thumbLoaded(e:Event):void {
                var my_thumb:Loader = Loader(e.target.loader);
                container_mc.addChild(my_thumb);
                my_tweens[Number(my_thumb.name)]=new Tween(my_thumb, "alpha", Strong.easeIn, 0,1,0.5, true);

                my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
            }

            function callFull(e:MouseEvent):void {
                var full_loader:Loader = new Loader();
                var full_url = my_images[e.target.name].@FULL;
                full_loader.load(new URLRequest(full_url));
                full_loader.contentLoaderInfo.addEventListener(Event.INIT, fullLoaded);

                var full_pb:ProgressBar = new ProgressBar();
                full_pb.source = full_loader.contentLoaderInfo;
                full_pb.x = (stage.stageWidth - full_pb.width)/2;
                full_pb.y = (stage.stageHeight - full_pb.height)/2;
                preloaders_mc.addChild(full_pb);

                full_pb.addEventListener(Event.COMPLETE, donePb);

                container_mc.removeEventListener(MouseEvent.CLICK, callFull);
                container_mc.buttonMode = false;
                container_mc.removeEventListener(MouseEvent.MOUSE_OVER, onOver);
                container_mc.removeEventListener(MouseEvent.MOUSE_OUT, onOut);
                container_mc_tween = new Tween(container_mc, "alpha", Strong.easeIn, 1,0.5,0.5, true);
            }
            function fullLoaded(e:Event):void {
                full_mc = new MovieClip();
                full_mc.buttonMode = true;
                addChild(full_mc);
                var my_loader:Loader = Loader(e.target.loader);
                full_mc.addChild(my_loader);
                full_tween = new Tween(my_loader, "alpha", Strong.easeIn, 0,1,0.5, true);
                my_loader.x = (stage.stageWidth - my_loader.width)/2;
                my_loader.y = (stage.stageHeight - my_loader.height)/2;
                my_loader.addEventListener(MouseEvent.CLICK,removeFull);

                my_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, fullLoaded);
            }
            function removeFull(e:MouseEvent):void {
                var my_loader:Loader = Loader (e.currentTarget);
                full_tween = new Tween(my_loader, "alpha", Strong.easeOut, 1,0,0.5, true);
                full_tween.addEventListener(TweenEvent.MOTION_FINISH, tweenFinished);

                container_mc_tween = new Tween(container_mc, "alpha", Strong.easeOut, 0.5,1,0.5, true);
            }

            function donePb(e:Event):void {
                var my_pb:ProgressBar = ProgressBar(e.target);
                preloaders_mc.removeChild(my_pb);
                my_pb.removeEventListener(Event.COMPLETE, donePb);
            }

            function tweenFinished(e:TweenEvent):void {
                var my_loader:Loader = Loader (e.target.obj);
                my_loader.unload();
                full_mc.removeChild(my_loader);// This line was removeChid(my_loader), just add full_mc before it.
                removeChild(full_mc);
                full_mc = null;

                container_mc.addEventListener(MouseEvent.CLICK, callFull);
                container_mc.buttonMode = true;
                container_mc.addEventListener(MouseEvent.MOUSE_OVER, onOver);
                container_mc.addEventListener(MouseEvent.MOUSE_OUT, onOut);

                var my_tween:Tween = Tween(e.target);
                my_tween.removeEventListener(TweenEvent.MOTION_FINISH, tweenFinished);
            }
            function onOver(e:MouseEvent):void {
                var my_thumb:Loader = Loader(e.target);
                my_thumb.alpha = 0.5;
            }
            function onOut(e:MouseEvent):void {
                var my_thumb:Loader = Loader (e.target);
                my_thumb.alpha = 1;
            }
          }
       }
   }

**我收到了这些错误,可能还有更多错误:

1046:未找到类型或不是编译时常量:ProgressBar。

1180:调用可能未定义的方法ProgressBar。

感谢进展**

1 个答案:

答案 0 :(得分:0)

发生了这些错误,因为库中没有进度条组件。 如果在舞台上不需要,则在舞台上拖放进度条组件,然后从舞台中删除。这样就可以在库中创建进度条组件的实例。