![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Feb 2009
Сообщений: 70
|
есть контейнер 500/400 пикселей.
в него подгружаются фотки. как сделать чтоб они изменяли свой размер по размеру контейнера? с scaleY и scaleX не получается ![]() фото почемуто всеравно разного размера остаются ![]() |
|
|||||
|
>>с scaleY и scaleX не получается
Ну не знаю, у меня чето получается 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; ?> */ Последний раз редактировалось Alex Lexcuk; 03.05.2009 в 22:38. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Alex Lexcuk, заместо тега [code] лучше пользоваться тегом [as3], он с подсветкой.
|
|
|||||
|
Регистрация: Feb 2009
Сообщений: 70
|
спасибо за помощь.
пыталась сделать по вашему примеру...не доходит до меня ![]() все время пишет что-то про null. мне всего лиш нужно чтоб все фото были одинаковыми по размеру. делала по вашему коду которым вы мне очень помогли в теме о загрузке файлов на сервер 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'> Файл на сервере,файл будет добавлен после проверки администрацией"; } } } прописывала разными способами но программа все равно ругается ![]() |
|
|||||
//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; ?> */ Последний раз редактировалось Alex Lexcuk; 03.05.2009 в 23:42. |
|
|||||
|
Равномерно уменьшит размеры фотограции.
__________________
Работю в DigitalHouse |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|