![]() ![]() |
2010. Jun 19., 14:50
Post
#301
|
|
![]() tag ![]() ![]() Group: tag Posts: 111 Joined: 06. August 2. From: Sopron Member No.: 2751 |
Sziasztok!
Egy hete próbálkozom az as3-mal, több kevesebb sikerrel. Írtam ezért egy kódot, ami libraryból beolvas néhány képet(:MovieClip), majd azoknak a pozíciionálásával cserélgetem őket. Ez addig tökéletesen működik amíg el nem kezdek játszadozni az addEventListener függvénnyel és a képek alfa csatornájával. A kód a következő: CODE import flash.display.MovieClip; import flash.display.DisplayObject; import flash.utils.setInterval; /** * Library items, converted to MovieClips */ var image_movieclip_array:Array = [ Image1, Image2, Image3 ] // Initialize vars var stage_img_array:Array = new Array(); var prev_img:Number = 2; var curr_img:Number = 0; for(var i = 0; i < image_movieclip_array.length; i++){ var img:MovieClip = new image_movieclip_array[i](); addChild(img); stage_img_array.push(img); if(i < 2) stage_img_array[i].alpha = 0; } function imageRotator() { this.swapChildren(stage_img_array[prev_img],stage_img_array[curr_img]) stage_img_array[prev_img].addEventListener(Event.ENTER_FRAME, fl_FadeSymbolOut); stage_img_array[curr_img].addEventListener(Event.ENTER_FRAME, fl_FadeSymbolIn); /** * This branch sets the next lineup */ if(this.curr_img <= 2) { this.prev_img = this.curr_img; this.curr_img += 1; } if(this.curr_img == 2) this.curr_img = 0; } var interval = setInterval(imageRotator,5000); function fl_FadeSymbolIn(event:Event):void { stage_img_array[curr_img].alpha += 0.02; if(stage_img_array[curr_img].alpha >= 1) { stage_img_array[curr_img].removeEventListener(Event.ENTER_FRAME, fl_FadeSymbolIn); } } function fl_FadeSymbolOut(event:Event):void { stage_img_array[prev_img].alpha -= 0.02; if(stage_img_array[prev_img].alpha <= 0) { stage_img_array[prev_img].removeEventListener(Event.ENTER_FRAME, fl_FadeSymbolOut); } } A tünet amit generál, nagyon furcsa (legalábbis számomra) ugyanis az első és a második kép közti átmenetet szépen létrehozza, majd egyet kihagy (tehát dupla annyi ideig marad benn) utána bevillan az a kép aminek a 2. cserénél jönnie kellett volna, amit aztán felülír az a kép, ami normálisan jelenik meg. Ezután pedig a korábbihoz képest, őrült sebességgel váltakoznak a képek. (Ha valaki szeretne pár potyapontot so-n: http://stackoverflow.com/questions/3075497...ps-load-random) |
|
|
|
![]() ![]() |
| Lo-Fi Version | Time is now: 2010. September 9. - 9:40 |