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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.05.2009, 19:27
droch_fhoula вне форума Посмотреть профиль Отправить личное сообщение для droch_fhoula Найти все сообщения от droch_fhoula
  № 1  
Ответить с цитированием
droch_fhoula

Регистрация: Feb 2009
Сообщений: 70
По умолчанию размер загружаемого файла

есть контейнер 500/400 пикселей.
в него подгружаются фотки.
как сделать чтоб они изменяли свой размер по размеру контейнера?
с scaleY и scaleX не получается
фото почемуто всеравно разного размера остаются

Старый 03.05.2009, 21:55
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 2  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
>>с scaleY и scaleX не получается

Ну не знаю, у меня чето получается
Код AS3:
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.*;
	import flash.geom.*;
	import fl.controls.*;
	import fl.data.*;
	import fl.controls.listClasses.*;
 
	public class DocGalery extends MovieClip {
		private const php:String = 'return-picture.php';// 'http://www.murmadillo.tut.su/pic/return-picture.php';
		private const path:String = 'http://www.murmadillo.tut.su/m/gallery/';
		private const noCache:String = '?' + new Date().getTime();
		private var urlLoader:URLLoader,
		progressBar:ProgressBar,
		general:Sprite,
		picArr:Array,
		loadCount:int,
		loader:Loader,
		picTransCount:int,//счетчик транзитий
		mcArr:Array,//массив объектов транзитий
		myTimer:Timer,
		timerStartTrig:Boolean;
 
 
		public function DocGalery() {
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
			addChild(general = new Sprite);
			//загрузка имен файлов через php файл
			urlLoader = new URLLoader();
			urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
			urlLoader.addEventListener(Event.COMPLETE, phpUrlLoaderCompleteHandler);
			urlLoader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
			urlLoader.load(new URLRequest(path + php + '?' + new Date().getTime()));
			addChild(progressBar = new ProgressBar);
			progressBar.mode = ProgressBarMode.MANUAL;
			myTimer = new Timer(5000);
			myTimer.addEventListener("timer", timerHandler);
			myTimer.stop();
			mcArr = [];
		}
 
 
 
		private function progressHandler(event:ProgressEvent):void {
			var fakeProgressCount:Number = 100*event.bytesLoaded/event.bytesTotal;
			//trace(" progressHandler loaded: " + event.bytesLoaded + " total: " + event.bytesTotal);
			progressBar.setProgress(fakeProgressCount, 100);
			//trace("fakeProgressCount" + fakeProgressCount);
		}
 
		private function phpUrlLoaderCompleteHandler(event:Event):void {
			//trace(new String(urlLoader.data));
			var i:int;
			var pattern:RegExp = /[\w-]+\.[Jj][Pp][Gg]/;
			var result:Object;
			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);
			//имена файлов загружены - запускаем галерею
			urlLoader.removeEventListener(Event.COMPLETE, phpUrlLoaderCompleteHandler);
 
			urlLoader.addEventListener(IOErrorEvent.IO_ERROR, imageIoErrorHandler);
 
			urlLoader.load(new URLRequest(path + picArr[loadCount] + noCache));
			urlLoader.addEventListener(Event.COMPLETE, imageUrlLoaderCompleteHandler);
			//goGalery();
		}
 
		private function imageUrlLoaderCompleteHandler(evt:Event):void {
			loadCount++;
			onward(true);
		}
 
		private function imageIoErrorHandler(event:IOErrorEvent):void {
			loadCount++;
			onward(false);
			trace("ioErrorHandler " + event);
		}
 
		private function onward(ok:Boolean):void {
			if (ok == true) {
				loader = new Loader;
				loader.loadBytes(urlLoader.data as ByteArray);
				loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderPicComplete);
			}
 
			if (loadCount < picArr.length) {
				urlLoader.load(new URLRequest(path + picArr[loadCount] + noCache));
			}
			else {
				trace("Все загружено");
				progressBar.visible = false;
			}
		}
 
		private function loaderPicComplete(evt:Event):void {
			var sp:MovieClip;
			var i:int,scale:Number,sh:Shape;
			general.addChildAt(sp = new MovieClip,0);
			mcArr.push(sp);
			sp.addChild(loader);
			//если маленькая увеличим
			if (sp.width < stage.stageWidth && sp.height < stage.stageHeight) {
				for (i = 0; i < 500; i++) {
					scale = i / 100;
					if (sp.width * scale > stage.stageWidth && sp.height * scale > stage.stageHeight) break;
				}
				loader.content.scaleX = loader.content.scaleY = scale;
			}
			else
			//если большая уменьшим
			{
				for (i = 500; i > 0; i--) {
					scale = i / 100;
					if (sp.width * scale < stage.stageWidth && sp.height * scale < stage.stageHeight) break;
				}
				loader.content.scaleX = loader.content.scaleY = scale;
			}
			//центровка
			loader.x = (stage.stageWidth - sp.width ) / 2;
			loader.y = (stage.stageHeight - sp.height ) / 2;
			//белый фон
			sp.addChildAt(sh = new Shape, 0);
			sh.graphics.beginFill(0xFFFFFF);
			sh.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
			if (timerStartTrig == false) {
				timerStartTrig = true;
				timerHandler();
				myTimer.start();
			}
		}
 
 
 
 
 
		private function setTransition(_bmArr:Array,_index:int):void {
			general.addChild(_bmArr[_index]);
			var tMc:MovieClip = _bmArr[_index];
			var index6:int = int(_index % 9);
			switch (index6) {
				case 0: {
					TransitionManager.start(tMc,{type:Wipe, direction:Transition.IN, duration:1, easing:None.easeOut});
					break;
				}
				case 1: {
					TransitionManager.start(tMc,{type:Fade, direction:Transition.IN, duration:1, easing:None.easeOut});
					break;
				}
				case 2: {
					TransitionManager.start(tMc,{type:Blinds, direction:Transition.IN, duration:1, easing:None.easeOut}); 
					break;
				}
				case 3: {
					TransitionManager.start(tMc,{type:Iris, direction:Transition.IN, duration:1, easing:None.easeOut, shape:Iris.CIRCLE}); 
					break;
				}
				case 4: {
					TransitionManager.start(tMc,{type:Squeeze, direction:Transition.IN, duration:1, easing:None.easeIn});  
					break;
				}
				case 5: {
					TransitionManager.start(tMc,{type:Rotate, direction:Transition.IN, duration:1, easing:None.easeOut});
					break;
				}
				case 6: {
					TransitionManager.start(tMc,{type:Zoom, direction:Transition.IN, duration:1, easing:None.easeOut});
					break;
				}
				case 7: {
					TransitionManager.start(tMc,{type:Iris, direction:Transition.IN, duration:1, easing:None.easeOut,shape:Iris.SQUARE});
					break;
				}
				case 8: {
					TransitionManager.start(tMc,{type:Fly, direction:Transition.IN, duration:1, easing:None.easeOut});
					break;
				}
				default: {
					break;
				}
			}
		}
 
		private function timerHandler(event:TimerEvent = null):void {
			trace("timerHandler: " + event);
			if (picTransCount >= mcArr.length) picTransCount = 0;
			setTransition(mcArr, picTransCount);
			picTransCount++;
		}
 
	}
}
 
/*
<?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);
echo $my_string;
?>
*/
http://www.murmadillo.tut.su/m/gallery/GalerySmall.swf


Последний раз редактировалось Alex Lexcuk; 03.05.2009 в 22:38.
Старый 03.05.2009, 22:29
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Alex Lexcuk, заместо тега [code] лучше пользоваться тегом [as3], он с подсветкой.

Старый 03.05.2009, 22:39
droch_fhoula вне форума Посмотреть профиль Отправить личное сообщение для droch_fhoula Найти все сообщения от droch_fhoula
  № 4  
Ответить с цитированием
droch_fhoula

Регистрация: Feb 2009
Сообщений: 70
спасибо за помощь.
пыталась сделать по вашему примеру...не доходит до меня
все время пишет что-то про null.
мне всего лиш нужно чтоб все фото были одинаковыми по размеру.
делала по вашему коду которым вы мне очень помогли в теме о загрузке файлов на сервер
Код AS3:
package {
	import flash.display.*;
	import flash.text.*;
	import flash.net.*;
	import flash.events.*;
	import flash.utils.*;
 
 
	public class LoadCompFileDocAndSendToServer extends MovieClip {
		public var loader:Loader;
		public var seven: MovieClip;
		public var file:FileReference;
		public var txt:TextField;
		public var sender:ByteArray;
		public var i:int;
		public var fileName:String;
		public var request:URLRequest;
		public var urlLoader: URLLoader;
		public var strFileNoEx:String; 
		public var reg:RegExp;
 
 
		public function LoadCompFileDocAndSendToServer() {
			txt=new TextField;
			txt.x = 280;
			txt.y = 20;
			txt.autoSize=TextFieldAutoSize.LEFT;
			file=new FileReference  ;
			file.addEventListener(Event.COMPLETE,onComplete);
			file.addEventListener(Event.SELECT,onSelectFile);
			txt.htmlText="<a href=\'event:load\'><u>Загрузить файл c компьютера</a>;";
			addChild(txt);
			txt.addEventListener(TextEvent.LINK,txtLinkFunc);
			urlLoader = new URLLoader();
			urlLoader.addEventListener(Event.COMPLETE,completeHandlerUrlLoader);
		}
 
		private function txtLinkFunc(evt:TextEvent):void {
			if (evt.text=='load') {
				onShowloadDialog();
			}
		}
 
		private function onShowloadDialog(event:Event=null):void {
			var fileFilter:FileFilter=new FileFilter("Images","*.jpg;*.gif;*.png;*.bmp");
			try {
				file.browse([fileFilter]);
			} catch (e:Error) {
			}
		}
		private function onSelectFile(event:Event):void {
			try {
				file.load();
			} catch (e:Error) {
			}
		}
		private function onComplete(event:Event):void {
			gotoAndPlay(2),stop();
			removeChild(txt);
			seven.visible = true;
			seven.addChild(loader=new Loader);
			loader.loadBytes(file.data);
			loader.y=0;
			loader.x=0;
			loader.scaleX = 0.3;
			loader.scaleY = 0.2;
 
			reg=/\.\w+/;
			strFileNoEx=file.name.replace(reg,'');
			trace(strFileNoEx);
 
			request = new URLRequest(
			"http://elvampiro.net/upload/save-file.php?name="+strFileNoEx+"&d="+new Date().getTime());
			request.data=file.data;
			request.method=URLRequestMethod.POST;
			request.contentType='application/octet-stream';
			urlLoader.load(request);
 
		}
		private function completeHandlerUrlLoader(event:Event):void {
			trace(urlLoader.data);
			addChild(txt=new TextField);
			txt.autoSize=TextFieldAutoSize.LEFT;
			txt.y=600;
			txt.htmlText="<font color='#ff0000'  size='20'> Файл на сервере,файл будет добавлен после проверки администрацией";
		}
	}
}
нужно только этот контейнер в который грузятся фото отскейлить.
прописывала разными способами но программа все равно ругается

Старый 03.05.2009, 22:43
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 5  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Код AS3:
//LoadCompFileDocAndSendToServer
package {
	import flash.display.*;
	import flash.text.*;
	import flash.net.*;
	import flash.events.*;
	import flash.utils.*;
	import fl.controls.*;
 
	public class LoadCompFileDocAndSendToServer extends Sprite {
		private const php:String = 'http://www.murmadillo.tut.su/m/gallery/save-file.php';
		private var loader:Loader,
			file:FileReference,
			txt:TextField,
			sender:ByteArray,
			i:int,
			fileName:String,
			request:URLRequest,
			urlLoader: URLLoader,
			strFileNoEx:String, 
			reg:RegExp,
			general:Sprite,
			progressBar:ProgressBar;
 
		public function LoadCompFileDocAndSendToServer() {
			//stage.scaleMode = StageScaleMode.NO_BORDER;
			//stage.align = StageAlign.TOP_LEFT;
			//stage.
 
			addChild(general = new Sprite);
 
 
			txt=new TextField;
			txt.autoSize=TextFieldAutoSize.LEFT;
			file=new FileReference;
			// file.browse(getTypes());
			file.addEventListener(Event.COMPLETE,onComplete);
			file.addEventListener(Event.SELECT,onSelectFile);
			//onShowloadDialog();
			txt.htmlText="<a href=\'event:load\'><u>Загрузить jpg файл c компьютера и сохранить на сервере</a>;";
 
			addChild(txt);//добавить на рабочее поле
			txt.autoSize=TextFieldAutoSize.LEFT;
			addChild(txt);
			txt.addEventListener(TextEvent.LINK,txtLinkFunc);
			urlLoader = new URLLoader();
			urlLoader.addEventListener(Event.COMPLETE, completeHandlerUrlLoader);
			addChild(progressBar = new ProgressBar);
			progressBar.visible = false;
			addChild(txt=new TextField);
		}
 
		private function txtLinkFunc(evt:TextEvent):void {
			if (evt.text == 'load') {
				onShowloadDialog();
			}
		}
 
		//отображение диалога открытия файла
		private function onShowloadDialog(event:Event = null):void {
			txt.text = '';
			var fileFilter:FileFilter=new FileFilter("Images","*.jpg");
			try {
				file.browse([fileFilter]);
			}
			//catch(illegalOperation:IllegalOperationError){ 
			catch (e:Error) {
			}
		}
		//при выборе файла загружаем его
		private function onSelectFile(event:Event):void {
			try {
				file.load();
			}
			// catch(illegalOperation:IllegalOperationError) 
			catch (e:Error) {
			}
		}
		private function onComplete(event:Event):void {
			loader = new Loader;
			loader.loadBytes(file.data);
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderPicComplete);
 
			//отправляем на сервер
			reg = /\.\w+/;//регулярка вылавливающая расширение файла
			strFileNoEx = file.name.replace(reg,'');
			trace(strFileNoEx);//имя загруженного файла без расширения
 
			request = new URLRequest(
			php+"?name="+strFileNoEx+"&d="+new Date().getTime());
			request.data = file.data;
			request.method = URLRequestMethod.POST;
			request.contentType = 'application/octet-stream';
			urlLoader.load(request);
			progressBar.visible = true;
			addChild(progressBar);
 
		}
		private function completeHandlerUrlLoader(event:Event):void {
			trace(urlLoader.data);
			txt.autoSize=TextFieldAutoSize.LEFT;
			txt.y = 200;
			txt.htmlText = "<font color='#ff0000'  size='30'> Файл на сервере";
			progressBar.visible = false;
		}
 
		private function loaderPicComplete(evt:Event):void {
			var sp:MovieClip;
			var i:int,scale:Number,sh:Shape;
			general.addChild(sp = new MovieClip);
			sp.addChild(loader);
			//если маленькая увеличим
			if (sp.width < stage.stageWidth && sp.height < stage.stageHeight) {
				for (i = 0; i < 500; i++) {
					scale = i / 100;
					if (sp.width * scale > stage.stageWidth && sp.height * scale > stage.stageHeight) break;
				}
				loader.content.scaleX = loader.content.scaleY = scale;
			}
			else
			//если большая уменьшим
			{
				for (i = 500; i > 0; i--) {
					scale = i / 100;
					if (sp.width * scale < stage.stageWidth && sp.height * scale < stage.stageHeight) break;
				}
				loader.content.scaleX = loader.content.scaleY = scale;
			}
			//центровка
			loader.x = (stage.stageWidth - sp.width ) / 2;
			loader.y = (stage.stageHeight - sp.height ) / 2;
			//белый фон
			sp.addChildAt(sh = new Shape, 0);
			sh.graphics.beginFill(0xFFFFFF);
			sh.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
		}
 
	}
}
 
//php скрипт принимает имя файла без расширения и добавляет расширения jpg
/*
<?php
	//save-file.php
	$fileData = $GLOBALS[HTTP_RAW_POST_DATA];
	$fileName = ''.$_GET['name'].'.jpg';
	$fp = fopen($fileName, "w");
	fwrite($fp,$fileData);
	fclose($fp);
	echo "file write - OK ".$fileName;
?>
*/
http://www.murmadillo.tut.su/m/galle...send-scale.swf


Последний раз редактировалось Alex Lexcuk; 03.05.2009 в 23:42.
Старый 04.05.2009, 17:43
Anry_coolboy вне форума Посмотреть профиль Отправить личное сообщение для Anry_coolboy Найти все сообщения от Anry_coolboy
  № 6  
Ответить с цитированием
Anry_coolboy
 
Аватар для Anry_coolboy

Регистрация: Dec 2006
Адрес: Ukraine Lugansk
Сообщений: 188
Отправить сообщение для Anry_coolboy с помощью ICQ Отправить сообщение для Anry_coolboy с помощью Skype™
Равномерно уменьшит размеры фотограции.
Код AS3:
 
var scale:Number =  foto.width / 500;
var scale2:Number =  foto.height / 400;
 
if (scale2 < scale)
scale = scale2;
 
foto.scaleX = scale;
foto.scaleY = scale;
__________________
Работю в DigitalHouse

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

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

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


 


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


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