Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   _xscale & _yscale - от центра? (http://www.flasher.ru/forum/showthread.php?t=95458)

Killer_13 06.05.2007 18:07

_xscale & _yscale - от центра?
 
Есть у меня маленькие превьюшки и вот по такому коду они у меня работают:
Код:

currentThumb.onRollOver = currentThumb.onDragOver = function(){
        currentThumb._xscale += 40;
        currentThumb._yscale += 40;
}
               
currentThumb.onRollOut = currentThumb.onDragOut = function(){
        currentThumb._xscale -= 40;
        currentThumb._yscale -= 40;               
}

Как сделать, чтоб они увеличивались постепенно (плвно)?
И как сделать, чтоб увелечение шло не от левого верхнего угла, а от центра?

iNils 06.05.2007 18:10

1. Воспользоваться классом Tween
2. Сместить содержимое клипа на половину ширины и высоты вверх и влево.

Killer_13 06.05.2007 18:33

1. - вы когда то подсказали мне клас Tween на альфу
Код:

import mx.transitions.Tween;
import mx.transitions.easing.None;
var tween:Tween = new Tween (this, "_alpha", None.easeNone, 100, 0, 0.3, true);

Так этот клас работает и с _xscale & _yscale. Но когда я его вставляю в обработчик события "onRollOver" мне выкидивает ошибку.
2. Имеется введу при "onRollOver" смещение самого мувика по "x & y"- наполовину?

iNils 06.05.2007 18:51

1а. Этот класс работает с любыми цифровыми свойствами объекта, в том числе и созданных вами.
1б. Какую ошибку и как вы вставили в обработчик.
2. Нет, зайти в клип и сдвинуть. Потом сдвинуть сам клип в обратную сторону. Можно также повесить событие onMotionChanged и делать перерасчеты, то это используется при динамической точки вращения.

Killer_13 06.05.2007 18:59

1
Код:

currentThumb.onRollOver = currentThumb.onDragOver = function(){
       
import mx.transitions.Tween;
import mx.transitions.easing.None;
var tween:Tween = new Tween (this, "_xscale","_yscale", None.easeNone, 0, 40, 0.3, true);
        //currentThumb._xscale += 40;
        //currentThumb._yscale += 40;
}

ошибки:
Код:

**Error** Scene=Scene 1, layer=actions, frame=1:Line 129: Syntax error.
                            import mx.transitions.Tween;

**Error** Scene=Scene 1, layer=actions, frame=1:Line 130: Syntax error.
                            import mx.transitions.easing.None;

Total ActionScript Errors: 2          Reported Errors: 2

Я чуствую оч глупие ошибки.. :(

iNils 06.05.2007 19:12

Нужно зайти в настройки публикации и поменять версию AS c 1 на 2.

Killer_13 06.05.2007 19:13

Это я так наглядно, - а если полностью, - то код выглядит - вот так:
Код:

currentThumb.onRollOver = currentThumb.onDragOver = function(){
import mx.transitions.Tween;
import mx.transitions.easing.None;
var tween:Tween = new Tween (currentThumb, "_xscale","_yscale", None.easeNone, 0, 40, 0.3, true);
}
currentThumb.onRollOut = currentThumb.onDragOut = function(){
import mx.transitions.Tween;
import mx.transitions.easing.None;
var tween:Tween = new Tween (currentThumb, "_xscale","_yscale", None.easeNone, 40, 0, 0.3, true);
}


iNils 06.05.2007 19:21

Такая конструкция работать не будет.
Код:

new Tween (currentThumb, "_xscale","_yscale", None.easeNone, 0, 40, 0.3, true);
Читайте в хелпе параметры конструктора и не делайте отсебятину.

Killer_13 06.05.2007 19:27

Поменял, - тепер скрипт запускается только в таком варианте: Причём увеличение не происходит - работает без увеличения - тоисть что с этим кодом, что без него... :(
Код:

currentThumb.onRollOver = currentThumb.onDragOver = function()
{
import mx.transitions.Tween;
import mx.transitions.easing.None;
var tween:Tween = new Tween (currentThumb, "_xscale","_yscale", None.easeNone, 0, 40, 0.3, true);
                        showName_txt.text = this.NAME;
}
сurrentThumb.onRollOut = currentThumb.onDragOut = function()
{
                       
                        showName_txt.text = "";
}

а в таком варианте он не запускается - выкидывает ошибку...

Код:

currentThumb.onRollOver = currentThumb.onDragOver = function()
{
import mx.transitions.Tween;
import mx.transitions.easing.None;
var tween:Tween = new Tween (currentThumb, "_xscale","_yscale", None.easeNone, 0, 40, 0.3, true);
                        showName_txt.text = this.NAME;
}
сurrentThumb.onRollOut = currentThumb.onDragOut = function()
{
import mx.transitions.Tween;
import mx.transitions.easing.None;
var tween:Tween = new Tween (currentThumb, "_xscale","_yscale", None.easeNone, 40, 0, 0.3, true);
                        showName_txt.text = this.NAME;               
                        showName_txt.text = "";
}

Ошибка:
Код:

**Error** Scene=Scene 1, layer=actions, frame=1:Line 145: The class 'mx.transitions.Tween' cannot be imported because its leaf name is already being resolved to imported class 'mx.transitions.Tween'.
                            import mx.transitions.Tween;

**Error** Scene=Scene 1, layer=actions, frame=1:Line 146: The class 'mx.transitions.easing.None' cannot be imported because its leaf name is already being resolved to imported class 'mx.transitions.easing.None'.
                            import mx.transitions.easing.None;

Total ActionScript Errors: 2          Reported Errors: 2


lowka 06.05.2007 19:30

Не нужно одни и те же классы два раза импортировать.


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

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