Урок интересный, тем кто мало понимает в Action Script’e , он тоже по силам. Ссылку этого файла мне прислал знакомый, пришлось создавать все званого, чтоб написать данный урок. Во Flash это парой бывает очень полезным.
1. Создаем новый swf файл. File > New или (Ctrl+N). Размер (480х640) 2. Создаем три слоя и называем их (ActionScript, Рамка и Текст) 3. В первом кадре слоя «Рамка», рисуем рамку размером и положением (width: 300 height: 400 x: 90 y:90)
4. В первом кадре слоя «Текст», вставляем 4 текстовых поля по вертикали (Dynamic Text). Устанавливаем галочку для каждого поля «Render text as HTML» 
и в пункте «Line Type» - устанавливаем Single line… как на картинке. Даем им 4 имя в поле “Instance name” (TFnormal, TFvertical, TFhorizontal, TFsmall) каждому соответственно.
(В этих полях появятся ссылки на 4 изображения, позже мы будим их нажимать : ) ) 5. Создаем в этом же слое еще одно поле, но чуть ниже рамки. Instance name ему “TFhelp”, а «Line Type» - устанавливаем Multiline. Ну и «Render text as HTML». Шрифт на выбор, у меня Arial (12). (В этом поле будет отображаться информация о размере загружаемого файла, его ресайзинге, т.е. изменении размера после и имя самого файла) 6. Создаем новый пустой MovieClip. Insert > New Symbol или (Ctrl+F8). Он нам понадобиться позже. Имя ему «Клип», пусть лежит в библиотеке фалов. Размещать на сцене мы его не будем. 7. В слое "ActionScript" в первом кадре пишем:
// Указываем размер нашей рамки, куда будут грузиться фотки clip.maxWidth = 300; clip.maxHeight = 400; clip.allowEnlarge = false; // Функция загрузки картинок clip.loadImage = function(file) { this.image.removeMovieClip(); this.createEmptyMovieClip("image", 0); this.image.loadMovie(file); this.onEnterFrame = function() { var l = this.image.getBytesLoaded(); var t = this.image.getBytesTotal(); if (t>0 && l>=t) { // загрузка закончилась delete this.onEnterFrame; this.resize(); } }; }; // Функция размерности картинок clip.resize = function() { // // для отображения тестовой инфы _root.TFhelp.htmlText += "\tзагрузилось, изменяем размер:<br/>"; _root.TFhelp.htmlText += "\t- было: "+this.image._width+"x"+this.image._height+"<br/>"; // // var ratio_x = this.maxWidth/this.image._width; var ratio_y = this.maxHeight/this.image._height; if (ratio_x<=ratio_y) { // выполняем, если нужно уменьшить, // или увеличить+увеличение разрешено if (ratio_x<1 || this.allowEnlarge) { // ширина равна максимальной // а высота в соответствии с пропорцией this.image._width = this.maxWidth; this.image._yscale = this.image._xscale; } } else { // выполняем, если нужно уменьшить, // или увеличить+увеличение разрешено if (ratio_y<1 || this.allowEnlarge) { // высота равна максимальной // а ширина в соответствии с пропорцией this.image._height = this.maxHeight; this.image._xscale = this.image._yscale; } } // // для отображения тестовой информации _root.TFhelp.htmlText += "\t- стало: "+this.image._width+"x"+this.image._height+"<br/>"; // // // центровка this.image._x = Math.round((this.maxWidth-this.image._width)/2); this.image._y = Math.round((this.maxHeight-this.image._height)/2); }; // // код, следующий ниже, не описан в туториале. // он нужен для интерфейса этого примера и на суть происходящего не влияет. var httppath = ""; var anchor = new TextField.StyleSheet(); anchor.setStyle("a", {textDecoration:"underline"}); var TF = [TFnormal, TFvertical, TFhorizontal, TFsmall]; for (var i in TF) { TF[i].styleSheet = anchor; TF[i].autoSize = true; } TFnormal.htmlText = "<a href='asfunction:loadImage,"+httppath+"normal.jpg'>загрузить картинку 300х400</a>"; TFvertical.htmlText = "<a href='asfunction:loadImage,"+httppath+"vertical.jpg'>загрузить вертикальную картинку</a>"; TFhorizontal.htmlText = "<a href='asfunction:loadImage,"+httppath+"horizontal.jpg'>загрузить горизонтальную картинку</a>"; TFsmall.htmlText = "<a href='asfunction:loadImage,"+httppath+"small.jpg'>загрузить маленькую картинку</a>"; loadImage = function (file) { _root.TFhelp.htmlText = "грузим файл <u>"+file+"</u><br/>"; _root.clip.loadImage(file); }; TFhelp.htmlText = "выберите, какую картинку грузить";
Когда мы все это сделали, нам осталось сохранить и протестировать. Да, и самое главное, фотографии… в этой же папке должны лежать 4 фотографии формата jpg любого размера, имена у них должны быть (normal, vertical, horizontal, small) Исходник урока здесь >>>
|