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)言わないです。頭のいいあなたは見れば分かります。判例分析はこれで終わります。ダウンロード