2013-02-03 82 views
0

我想加載大量照片使用UILoader組件,而且我必須更改註冊點,那麼我該怎麼做呢? 那裏有任何代碼?更改AS3 UILoader組件註冊點

import flash.utils.Timer; 
import flash.events.TimerEvent; 
import flash.events.MouseEvent; 
import flash.events.Event; 
import fl.containers.UILoader; 
import flash.text.TextField; 
import flash.display.SimpleButton; 
import fl.transitions.Tween; 
import fl.transitions.TweenEvent; 
import fl.transitions.easing.*; 
stage.colorCorrection = ColorCorrection.ON; 

var myImage:String = "smallWildlife/00.jpg"; 
var request:URLRequest = new URLRequest(myImage); 
uiLoader.addEventListener(Event.COMPLETE, completeHandler); 
uiLoader.addEventListener(ProgressEvent.PROGRESS, progressHandler); 
uiLoader.load(request); 

function progressHandler(event:ProgressEvent):void 
{ 

status_txt.text = "Percentage Loaded:" + Math.round(event.target.percentLoaded); 
} 

function completeHandler(event:Event):void 
{ 
uiLoader.x = stage.stageWidth/6 - uiLoader.content.width/6; 
uiLoader.y = stage.stageHeight/100 - uiLoader.content.height/700; 
new Tween(uiLoader,"rotationX",Elastic.easeOut,90,0,4,true); 
} 

next_btn.addEventListener(MouseEvent.CLICK, nextImage); 

//variable is a container that holds some value...; 
var imageNumber:Number = 0; 

function checkNumber():void 
{ 
next_btn.visible = true; 
back_btn.visible = true; 
//If the imageNumber is = 58, then do something... 
if (imageNumber == 58) 
{ 
    trace(imageNumber); 
    next_btn.visible = false; 
} 
//if the imageNumber is = 1, then don't show the back button 
if (imageNumber == 0) 
{ 
    trace(imageNumber); 
     back_btn.visible = false; 
} 
} 
checkNumber(); 

function nextImage(evtObj:MouseEvent):void 
{ 
//Adding to the current value +1 
imageNumber++; 
uiLoader.source = "smallWildlife/0" + imageNumber + ".jpg"; 
checkNumber(); 
} 

back_btn.addEventListener(MouseEvent.CLICK, backImage); 

function backImage(evtObj:MouseEvent):void 
{ 
//Subtract 1 from the current value 
imageNumber--; 
uiLoader.source = "smallWildlife/0" + imageNumber + ".jpg"; 
checkNumber(); 
} 

stop(); 

請幫幫我! 我需要讓我的畫廊phose在中心。

+0

沒有用於更改註冊點的代碼。只要在你的代碼中做你所做的事 - 將x和y的位置移動寬度/高度的一半 - 但是在一個Sprite中居中放置iuLoader,然後將sprite旋轉而不是uiLoader – 2013-02-03 02:26:26

回答

0

首先,將UILoader組件拖放到舞臺上;然後將其命名爲「uiLoader」。

package { 

    import fl.containers.*; 
    import fl.transitions.*; 
    import fl.transitions.easing.*; 
    import flash.display.*; 
    import flash.events.*; 
    import flash.net.URLRequest; 

    public class Main extends Sprite { 

    private var spr:Sprite; 

    // Your URL here 
    private var url:String = "http://joanmiro.com/wp-content/uploads/2009/05/joanmiro1.jpg"; 

    public function 
    Main() { 
     var request:URLRequest = new URLRequest(url); 

     uiLoader.addEventListener(Event.COMPLETE, completeHandler); 
     uiLoader.load(request); 

     spr = new Sprite(); 

     // Place spr anywhere on the stage 
     spr.x = stage.stageWidth/2; 
     spr.y = stage.stageHeight/2; 
     spr.addChild(uiLoader); 

     addChild(spr); 
    } 

    private function 
    completeHandler(e:Event):void { 
     // Center uiLoader in spr 
     uiLoader.x = - uiLoader.width/2; 
     uiLoader.y = - uiLoader.height/2; 
     new Tween(spr, "rotation", Elastic.easeOut, 1080, 0, 12, true); 
    } 
    } 
} 
+0

@LilyMm下面是一個可用的swf:http://www.swfcabin。 com/open/1360243897 – khailcs

+0

嗨Khailcs,我使用AS3,你給我的這個代碼是AS3? –

+0

這是AS3。您可以將Sprite spr放在任何地方,重要的是您將uiLoader放在spr中。 – khailcs