![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 65
|
Добрый вечер коллеги!
Вопрос в следующем: как в программно создаваемом MovieClip'е установить центр(точку) трансформации. Заранее спасибо! |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Создать вспомогательный клип, в нем создать ваш "MC", сдвинуть "MC" в соответвтующие координаты, например _x = "минус половина ширины" и _y = "минус половина высоты" и вращать вспомогательный клип. Вроде так.
|
|
|||||
|
Регистрация: Jun 2010
Сообщений: 65
|
Добрый день!
В вспомогательном MovieClip разместил точку регистрации в центре. Загрузил изображение в целевой MovieClip, задав ему координаты _x и _y половине ширины и высоты, и разместил его в вспомогательном MC. Итог можно увидеть во вложении. Вопрос: что я не так сделал?=( |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Могу открыть только формат CS3. Если я правильно понимаю, вам надо сделать следующее:
1) создать клип в текущем месте - _root.createEmptyMovieClip 2) создать клип внутри созданного - _root["preloadClip_0"].createEmptyMovieClip 3) загрузить картинку в клип из пункта 2 4) сдвинуть клип из пункта 2, он сдвинется относительно клипа из пункта 1 5) вращать клип из пункта 1 Вот упрощенный код: var newClip = _root.createEmptyMovieClip("preloadClip_0", _root.getNextHighestDepth()); var newClip2 = newClip.createEmptyMovieClip("preloadClip_1", newClip.getNextHighestDepth()); var mcl:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); mcl.addListener(listener); listener.onLoadInit = function(target_mc):Void{ target_mc._x = -target_mc._width/2; target_mc._y = -target_mc._height/2; } mcl.loadClip("mno0.jpg", newClip2); newClip._x = Stage.width / 2; newClip._y = Stage.height / 2; newClip._rotation = 45; |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 65
|
Почти так. Немного уточню, может что-то упустил:
import flash.display.BitmapData; import flash.geom.Matrix; var mtrx = new Matrix(); mtrx.scale(1.0, 1.0); var mcl:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); mcl.addListener(listener); listener.onLoadInit = function(target_mc):Void{ var bmd = new BitmapData(187, 187, true, 0x00000000); bmd.draw(target_mc, mtrx, null, "normal", null, true); mc.attachBitmap(bmd, d2, "auto", true); target_mc._x = -target_mc._width/2; target_mc._y = -target_mc._height/2; mc.onPress = function(){ this._xscale +=10; this._yscale +=10; } removeMovieClip(target_mc); } var newClip = _root.createEmptyMovieClip("preloadClip_0", _root.getNextHighestDepth()); mcl.loadClip("images/mno0.jpg", newClip); Последний раз редактировалось Prometei1599; 24.02.2011 в 20:06. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Я не совсем "догоняю" что у вас происходит - вы создаете в корне клип, в него грузите картинку, отрисовываете картинку в другой клип, затем зачем-то двигаете загруженный клип и сразу его удаляете.
Сохраните свой исходник с формате CS3, я вечером посмотрю что у вас там такое. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 65
|
Прошу прощения. Накрутил лишнего в этот код...
Задача в том, чтобы загрузить изображение, отрисовать ее в целевой MovieClip. А затем разместить целевой MovieClip во вспомогательный, таким образом, чтобы масштабирование производилось от геометрического центра. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 65
|
Добрый день!
Вопрос решен и тему можно закрывать!) Если кому интересно, вот код: import flash.display.BitmapData; import flash.geom.Matrix; var mtrx = new Matrix(); mtrx.scale(1.0, 1.0); var mcl:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); mcl.addListener(listener); listener.onLoadInit = function(target_mc):Void{ var bmd = new BitmapData(187, 187, true, 0x00000000); bmd.draw(target_mc, mtrx, null, "normal", null, true); mc.attachBitmap(bmd, d2, "auto", true); mc._x = -mc._width/2; mc._y = -mc._height/2; } mainMC.onPress = function(){ mainMC._rotation +=45; } var mc = mainMC.createEmptyMovieClip("innerMC", mainMC.getNextHighestDepth()); var preloadClip = mc.createEmptyMovieClip("preloadClip", mc.getNextHighestDepth()); mcl.loadClip("images/mno0.jpg", preloadClip); Отдельное спасибо rainbow!) |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|