Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 15.02.2009, 01:08
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 9  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
ну так нужно галереи подсунуть php файл, который вернет jpg
типа такого
Код:
<?php
//return-picture.php
$dd=opendir(getcwd());
$my_string="";
while (true)
{
$cur=readdir($dd);
if ($cur=="") break;
if ( (strpos($cur,"jpg")==true) or (strpos($cur,"JPG")==true) )
$my_string=$my_string.$cur."|";
}
closedir($dd);
$my_string=$my_string;
echo $my_string;
?>
Загрузить его в галерею можно как-так (документ класс)
Код:
package {
	import flash.display.*; import flash.events.*; import flash.ui.*; import flash.text.*;
	import flash.net.*;import fl.transitions.*;import fl.transitions.easing.*;import flash.utils.*;

	public class DocGalery extends Sprite {
		private var loader:URLLoader,
			pLoader:Loader,req:URLRequest,count:int,position:int,path:String,picArr:Array,
			sp:Sprite,tween:Tween,tweenTimer:Tween,tr:Boolean,i:int,urlLoader:URLLoader,
			prePathStr:String,allPicLoadingTr:Boolean,finalImag:int,
			actTw:Boolean,nextPreCont:int,pattern:RegExp = /\w+\.\w+/,result:Object;

		public function DocGalery() {
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;

			actTw = allPicLoadingTr = false;
			nextPreCont = finalImag = 0;
			//addChild(txt);
			//загрузка имен файлов через php файл
			prePathStr = "";// "http://localhost/CONTENT_PATH/gallery/";//;
			var phpFileStr:String = "return-picture.php?"+new Date().getTime();
			var pictURLReq:URLRequest = new URLRequest(prePathStr + phpFileStr);
			urlLoader = new URLLoader();
			urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
			urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);
			urlLoader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
			urlLoader.load(pictURLReq);
			//GoGalery();
		}
		private function progressHandler(event:ProgressEvent):void {
			trace(" progressHandler loaded: " + event.bytesLoaded + " total: " + event.bytesTotal);
		}

		private function urlLoaderCompleteHandler(event:Event):void {
			var strUnSort:String = new String(urlLoader.data);
			var pictureArr:Array = strUnSort.split("|");
			//var correctArr:Array = [];
			picArr = [];
			for (i = 0; i < pictureArr.length - 1; i++) {
				result = pattern.exec(pictureArr[i]);
				trace(result);
				if (result!=null) if (result.toString() == pictureArr[i]) picArr.push(pictureArr[i]);
			}
			trace(picArr);
			//имена файлов загружены - запускаем галерею
			trace(strUnSort);
			goGalery();
		}

		private function goGalery():void {
			path = prePathStr;
			req = new URLRequest();
			count = 0;
			position = 0;

			onward();
			tween = new Tween( { i:0 }, "i", Regular.easeOut, 0, 1, 5, true);
			tweenTimer = new Tween( { i:0 }, "i", Regular.easeOut, 0, 1, 5, true);
			tween.stop();
			tweenTimer.stop();
			tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenChange);
			tween.addEventListener(TweenEvent.MOTION_FINISH, finTweenFunc);
			tweenTimer.addEventListener(TweenEvent.MOTION_FINISH, finTimerFunc);
		}
		private function loaderComplete(evt:Event):void {
			trace(req.url);
			if (loader.bytesTotal>3000){
				sp = new Sprite();
				sp.graphics.beginFill(0xffffff);
				sp.graphics.drawRect(0, 0, 1500, 800);
				pLoader = new Loader();
				pLoader.loadBytes(loader.data as ByteArray);
				sp.addChild(pLoader);
				addChild(sp);
				sp.alpha = 0;
				finalImag++;
				if (actTw == false) {
					nextPreCont++;
					tween.stop();
					tween.start();
				}
				count++;
				onward();
			}
			else {
				count++;
				onward();
			}
		}
		private function ioErrorHandler(event:IOErrorEvent):void {
			count++;
			onward();
		}

		private function onward():void {
			if (count < picArr.length) {
				trace('Гружу');
				loader = new URLLoader();
				loader.dataFormat= URLLoaderDataFormat.BINARY;
				req.url = path + picArr[count];// +'?=' + new Date().getTime();
				trace(req.url);
				loader.load(req);
				loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
				loader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
				loader.addEventListener(Event.COMPLETE,loaderComplete);
			}
			if (count == picArr.length) {
				allPicLoadingTr = true;
				tween.start();
				position = nextPreCont;
			}
		}
		private function tweenChange(evt:TweenEvent):void {
			actTw = true;
			if (allPicLoadingTr == true){
				sp = this.getChildAt(position) as Sprite;
				sp.alpha = tween.obj.i;
			}
			if (allPicLoadingTr == false){
				try{sp = this.getChildAt(nextPreCont-1) as Sprite;
				sp.alpha = tween.obj.i;}catch(e:Error){}
			}
		}

		private function finTweenFunc(evt:TweenEvent):void {
			tweenTimer.start();
		}

		private function finTimerFunc(event:TweenEvent):void {
			actTw = false;
			if (allPicLoadingTr == true){
				position++;
				trace("finalImag " + finalImag + " " + "position " + position);
				if (position >= finalImag) {
					position = 0;
					for (i = 0; i < this.numChildren; i++) this.getChildAt(i).alpha = 0;
				}
				tween.start();
			}
		}
	}
}
Будет работать так:
http://www.murmadillo.tut.su/m/gallery/DocGalery.swf

Создать новую тему   Часовой пояс GMT +4, время: 19:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
upload
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:40.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.