![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Ну это не удачный зип,
потом я сделал чуть лучше http://www.dnadillo.dn.ua/fla/button-big-small.html |
|
|||||
|
Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
|
хмм ... делаю так:
и на экране пусто ... и еще "контейнер" обязательно должен быть мувиклипом ? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А контейнер в display list добавлять типа не надо?
|
|
|||||
|
Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
|
извинияюсь ... ступил ...а точка трансформации никак програмно не сдвигается ? а то что-то с контейнерами не фэньшуй .. ![]() так и не допонял как в контейнере выровнить ... ![]() Последний раз редактировалось Makak; 17.10.2008 в 00:08. |
|
|||||
package
{
import flash.display.*;
import flash.events.*;
import flash.events.*;
import flash.text.*;
dynamic public class BigSmallDoc extends Sprite {
var inter:InterActivScale;
var i:int,xi:int,yi:int;
var sp:Sprite;
var string:String;
function BigSmallDoc() {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
string = "Прикольная фишка получилась. Это мега прикол. Надо будет попробовать кому нибуть сделать "+
"Такой прикол используя, непонятно зачем Caurina или MaxTween, а может лучше GTween? ";
for (i=0; i<string.length; i++)
{inter = new InterActivScale(this,string.charAt(i));
}
inter.x = 200;
inter.y = 200;
rescan();
}
function rescan(){
for (i=0;i<this.numChildren;i++){
sp = this.getChildAt(i) as Sprite;
sp.x = xi + sp.width/2;
xi+=sp.width;
sp.y = yi + sp.height/2;
if (xi+sp.height>stage.stageWidth) {
xi=0;
yi+=sp.height;
trace(">");
}
}
}
}
}
package {
import flash.display.*;
import flash.events.*;
import flash.events.*;
import flash.text.*;
import fl.transitions.*;
import fl.transitions.easing.*;
dynamic public class InterActivScale extends Sprite {;
var doc:BigSmallDoc;
var txt:TextField;
var tween:Tween;
var scale:int;
var anim_trig:Boolean;
var current:int;
var max:int;
var min:int;
function InterActivScale(_doc:BigSmallDoc, _caption:String) {
doc = _doc;
doc.addChild(this);
txt = new TextField();
txt.text = _caption;
txt.autoSize = TextFieldAutoSize.LEFT;
txt.border = true;
txt.background= true;
txt.backgroundColor = 0xffa0ff;
addChild(txt);
txt.selectable = false;
max = 8;
min = 3;
scaleX = scaleY = min;
//закрыть клип прямоугольником, для предотвращения перекрывания текстовой областью
var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF,0);
square.graphics.drawRect(0, 0, txt.width, txt.height);
square.graphics.endFill();
addChild(square);
txt.x = square.x = - txt.width/2;
txt.y = square.y = - txt.height/2;
this.addEventListener(MouseEvent.MOUSE_OVER, over_func);
doc.addEventListener(MouseEvent.MOUSE_OUT, doc_out_func);
this.useHandCursor = true;
this.buttonMode = true;
tween = new Tween({i:0}, "i", None.easeNone, min, max, 0.3, true);
current = min;
tween.stop();
tween.addEventListener(TweenEvent.MOTION_CHANGE, tween_motion_change);
}
function over_func(evt:MouseEvent) {
//trace("over");
tween.stop();
tween.begin = current;
tween.finish = max;
//trace("over_func");
tween.start();
doc.addChild(this);
}
function doc_out_func(evt:MouseEvent) {
tween.stop();
tween.begin = current;
tween.finish = min;
//trace("doc_out_func");
tween.start();
}
function tween_motion_change(evt:TweenEvent):void {
current = tween.obj.i;
scaleX = scaleY = tween.obj.i;
}
}
}
|
|
|||||
|
Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
|
2: Makak
Просто сдвигайте ваш мувик влево по оси x на половину длинны (width/2) и вверх по оси y на половину высоты (height/2) вашего програмного мувика в рамках вашего контейнера. Эффект к контейнеру. P.S. Не советую вам забивать голову постами автора Alex Lexcuk. Это моё субъективное мнение. Последний раз редактировалось Xpb7; 17.10.2008 в 19:02. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|