Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   zoom slider (http://www.flasher.ru/forum/showthread.php?t=152060)

Sergii 10.03.2011 22:21

zoom slider
 
У меня есть приложение которое подгружает изображение выбранное с компа,
после этого мне нужно его приближать и отдалять при помощи Слайдера ! как это можно сделать ?!

bav 10.03.2011 22:32

Изменять свойства изображения scaleX, scaleY в зависимости от состояния слайдера.

NikolyA 10.03.2011 23:27

на тебе пример: http://blog.flexexamples.com/2007/09...mapdata-class/ с исходником, остальное додумаешь сам

Sergii 10.03.2011 23:42

Большое спасибо ... а как добавить перетаскивание если картинку очень приблизили ?!

NikolyA 11.03.2011 00:03

startDrag и stopDrag - посмотри как работать с ними

Sergii 11.03.2011 15:55

еще один вопрос ......
я нашел как делать приближение изображения с помощью слайдера ...

но там изображение вставляется автоматом с указанного места

Код:

<mx:Image id="img"

source="@Embed(source='assets/button.jpeg')"

scaleX=".3" scaleY=".3"

rollOver="doZoom(event)"

rollOut="doZoom(event)"/>

а как мне сделать что бы в source указывался файл который я загрузил с помощью функции loadFileRef ?!

NikolyA 11.03.2011 16:46

попробуй в качестве источника указать контейнер в который картинка грузится

Tato 12.03.2011 06:43

Код AS3:

                        private var fr:FileReference = new FileReference();
                        private var fil:FileFilter = new FileFilter("img (png, jpg)", "*.png;*.jpg");
 
                        protected function button1_clickHandler(event:MouseEvent):void
                        {                               
                                fr.browse([fil]);
                                fr.addEventListener(Event.SELECT, load);
                        }
 
                        protected function load(e:Event):void
                        {
                                fr.addEventListener(Event.COMPLETE, comp);
                                fr.load();
                        }
 
                        protected function comp(e:Event):void
                        {
                                img.source = fr.data;
                        }
 
...
 
        <mx:Image id="img" width="300" height="300"/>
        <mx:Button label="Button" click="button1_clickHandler(event)"/>


Sergii 17.03.2011 19:55

еще вопрос может кто знает !
У меня приближение фотографии идет к верхнему левому углу ...
Как сделать что бы приближение шло пропорционально по середине ?!

djyamato 17.03.2011 20:31

в топике флэш а не флекс много тем про трансформации картинки
По идее, Вы можете положить картинку в контейнер так чтобы центр картинки был в верхнем левом углу контейнера
Меняя scaleX и scaleY КОНТЕЙНЕРА вы получите зум картинки относительно ее середины, перетаскивать нужно будет тогда тоже контейнер

ps Правда? тут я имею ввиду под контейнером Sprite или MovieClip

Sergii 24.03.2011 01:07

нет так не выходит (((
мне кто-то может написать код...который бы приближал картинку пропорционально ?!?!?! при помощи слайдера ?!

Добавлено через 27 минут
Я вот нашел как зум делать
Код:

<mx:HSlider id="scale"
                        minimum="1"
                        maximum="4"
                        value="1"
                        liveDragging="true"
                        tickInterval="1"
                        showTrackHighlight="true" />

                        <mx:Image id="img1"
                source="........."
                scaleX="{scale.value}"
                scaleY="{scale.value}" />

Но почему он приближает к верхнему левому углу ! а не по середине ?!

Добавлено через 19 часов 33 минуты
Ребята помогите, очень прошу !!!!
Вот уже есть код почти полностью готовый
Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
        xmlns:mx="http://www.adobe.com/2006/mxml"
        backgroundAlpha="1"
        layout="absolute"
        width="400"
        height="400">
       
        <mx:Script>
                <![CDATA[
                        private function onSliderChange():void
                        {
                                this.cvsImage.scaleX = this.zoomSlider.value;
                                this.cvsImage.scaleY = this.zoomSlider.value;                               
                               
                        }
                       
                ]]>
        </mx:Script>
        <mx:Canvas x="0" y="0" width="400" height="300">
               
               
                <mx:Canvas
                        id="cvsImage"
                        clipContent="false"
                        x="{cvsImage.width /2}" y="{cvsImage.height /2}">
                       
                        <mx:Image
                                id="imgSpiral"
                                x="{-imgSpiral.width /2}"
                                y="{-imgSpiral.height /2}"
                                source="img/img.jpg"/>
                </mx:Canvas>
        </mx:Canvas>
        <mx:HSlider
                id="zoomSlider"
                liveDragging="true"
                minimum="1"
                maximum="5"
                value="1" x="64" y="351"
                change="onSliderChange()"/>
        <mx:Label
                text="Rotation" x="10" y="356"/>
        <mx:HRule x="10" y="346" width="380"/>
        <mx:HRule x="10" y="380" width="380"/>
       
</mx:Application>

Но почему когда я приближаю .... когда начинает левая сторона уходить за края не появляется прокрутка ?!
А когда начинает правая заходить, то прокрутка есть !


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

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