AS 3.0はクラスを通してギャラリーを実現します。


クラスを通してギャラリーの説明を実現します。比較的簡単なアルバムはクラスを通して実現します。プレゼンテーション:http://www.live-my-life-with-yuyi.com/as3_cases/ギャラリークラス/準備作業:ソースファイルのクラスを開く。final.flaは、プロパティのリリース設定をクリックして、アクションスクリプト3の隣の設定をクリックして、一番下のクラスパスパスの中に、clases_を導入します。finalのフォルダのパスをクリックして確認してください。前の作業は完了します。コード:唯一のクラスファイル:ImageGallerry.as

package interactive.gallery 

    import flash.display.*; 
    import flash.events.*; 
    import fl.transitions.*; 
    import fl.transitions.easing.*; 
    import flash.filters.*; 
    import flash.net.*; 
    public class ImageGallery extends MovieClip 
    { 
        var xml:XML; 
        var xmlList:XMLList; 
        var xmlLoader:URLLoader = new URLLoader(); 
        var container:MovieClip = new MovieClip(); 
        var imageLoader:Loader; 
        var segments:Number; 
        var currentSegment:int; 
        var fullLoader:Loader = new Loader(); 
        var xmlPath:String; 
        var thumbAtt:String; 
        var fullAtt:String 
        public function ImageGallery(path:String,thumb:String, full:String) 
        { 
            section1 
        } 
        function xmlLoaded(event:Event):void 
        { 
            section2 
        } 
        function changeThumb(event:MouseEvent):void 
        { 
            section3 
        } 
        function showPicture(event:MouseEvent):void 
        { 
            section4 
        } 
    } 

section 1コード:

xmlPath = path; 
thumbAtt = thumb; 
fullAtt = full; 
container.x = 25; 
container.y = 25; 
fullLoader.x = 200; 
fullLoader.y = 25; 
container.addEventListener(MouseEvent.MOUSE_MOVE, changeThumb); 
container.addEventListener(MouseEvent.CLICK, showPicture); 
xmlLoader.load(new URLRequest(xmlPath)); 
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); 
container.filters = [new DropShadowFilter()]; 
addChild(container); 
addChild(fullLoader); 
このコードの機能は初期化クラスの時に、後で使用する変数にいくつかの値を割り当てます。これらの変数はグローバル変数ですので、後のfunctionは全部使えます。containerに傍受イベントを追加し、マウスの移動とクリックを監督します。xmlファイルをロードして、xmlロードが完了したら、xml Loaded関数を実行してcontainerにシャドウフィルタを適用しました。このcontainerは将来私達が写真をロードするmcです。そしてcontainerとfullLaoderを舞台にして、fullLoaderは将来大図を載せます。セレクション2 x ml = XML(event.ta)xml List = xml.Children();for (var i:int = 0; i < xml List.length() i+){    イメージリーダー = new Loader();    image Loader.load(new URLRequest(xml List[i].atribute);    container.addChild(imagLoader);xmlロードが完了すると、この関数が実行されます。まず、xmlオブジェクトリストを取得し、xmlのサブ要素を取得します。これは前の教程で述べたことがあります。サブ要素を遍歴して、Loaderを通じて画像をロードし、イメージLoaderをcontainerに追加します。section 3

segments = container.width / container.numChildren; 
currentSegment = Math.floor(container.mouseX / segments); 
if (currentSegment <= container.numChildren - 1) 

    for (var j:int = 0; j < container.numChildren; j++) 
    { 
        container.getChildAt(j).visible = false; 
    } 
container.getChildAt(currentSegment).visible = true; 

この関数は、マウスがサムネイル上を移動するイベントに応答して、アルゴリズムが内部にある。mcの幅をロードされたサムネイルの数で割って、平均数を得る。そして、現在のマウスのxビットを削除して、得られたばかりの平均数で現在のマウスのある画像(聞いていて違和感があります)を得て、まずすべてのcontainerの中のchildを隠してから、現在の画像を表示します。セレクション4 fullLoader.unload();fullLoader.load(new URLRequest(xml List[current Segment].atribute(fullatt))これはサムネイルに応答してイベントをクリックし、先に読み込んだ大図を削除してサムネイルに対応する大図をロードします。実は難しくないですか?もう一度引いてください。完全なコード

package interactive.gallery 

    import flash.display.*; 
    import flash.events.*; 
    import fl.transitions.*; 
    import fl.transitions.easing.*; 
    import flash.filters.*; 
    import flash.net.*; 
    public class ImageGallery extends MovieClip 
    { 
        var xml:XML; 
        var xmlList:XMLList; 
        var xmlLoader:URLLoader = new URLLoader(); 
        var container:MovieClip = new MovieClip(); 
        var imageLoader:Loader; 
        var segments:Number; 
        var currentSegment:int; 
        var fullLoader:Loader = new Loader(); 
        var xmlPath:String; 
        var thumbAtt:String; 
        var fullAtt:String 
        public function ImageGallery(path:String,thumb:String, full:String) 
        { 
            xmlPath = path; 
            thumbAtt = thumb; 
            fullAtt = full; 
            container.x = 25; 
            container.y = 25; 
            fullLoader.x = 200; 
            fullLoader.y = 25; 
            container.addEventListener(MouseEvent.MOUSE_MOVE, changeThumb); 
            container.addEventListener(MouseEvent.CLICK, showPicture); 
            xmlLoader.load(new URLRequest(xmlPath)); 
            xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); 
            container.filters = [new DropShadowFilter()]; 
            addChild(container); 
            addChild(fullLoader); 
        } 
        function xmlLoaded(event:Event):void 
        { 
            xml = XML(event.target.data); 
            xmlList = xml.children(); 
            for (var i:int = 0; i < xmlList.length(); i++) 
            { 
                imageLoader = new Loader(); 
                imageLoader.load(new URLRequest(xmlList[i].attribute(thumbAtt))); 
                container.addChild(imageLoader); 
            } 
        } 
        function changeThumb(event:MouseEvent):void 
        { 
            segments = container.width / container.numChildren; 
            currentSegment = Math.floor(container.mouseX / segments); 
            if (currentSegment <= container.numChildren - 1) 
            { 
                for (var j:int = 0; j < container.numChildren; j++) 
                { 
                    container.getChildAt(j).visible = false; 
                } 
                container.getChildAt(currentSegment).visible = true; 
            } 
        } 
        function showPicture(event:MouseEvent):void 
        { 
            fullLoader.unload(); 
            fullLoader.load(new URLRequest(xmlList[currentSegment].attribute(fullAtt))); 
        } 
    } 

種類が終わったら、flaの中はどう書きますか?これは簡単で、importが多いです。 interactive.gallry.ImageGallry;var ギャラリー:ImageGallry = new ImageGallry(「data/imags.xml」「thumb」「full」)addChild(gallry)言わないです。頭のいいあなたは見れば分かります。判例分析はこれで終わります。ダウンロード