PDA

Просмотр полной версии : Каким образом в Флексе или же AS3 можно позиционировать обьекты ?


D12
08.01.2006, 20:34
КАк , в Флеше (как мы его понимаем сейчас делается просто

_x+=1; и полетели а тут как , интерфреймов нету , да и вообще пока лес дремучий .....

Antares
08.01.2006, 20:52
1. Задать координаты x и y в тэгах.
2. Эффект Move

Дело в том, что Flex двигает программирование под Flash Platform в направлении классического подхода: так сказать, "событийно-листнеровой модели мира", а не извратов типа onEnterFrame. То есть для всего у нас есть инструменты, а не способы почесать пяткой ухо. Если инструментов нет -- мы их сами сделаем.

Почитай Developing Flex Applications, это лучшая книга из всей доки, написанной командой, которую возглавляет Джен ДеХаан.

Antares
08.01.2006, 20:54
Особенно тебе интересна будет 462 страница, я думаю ;)

Чтобы лезть в AS3 хорошо бы иметь опыт с Java / C#, а также самим Flex. Это не упрек тебе, это просто факт, я сам в этом вижу пока только верхушку айсберга :)

silin
08.01.2006, 21:01
насчет извратов типа onEnterFrame: интерфрейм никуда не делся, все можно реализовать и в старом стиле, только надо подписать объект (причем любой, а не только мувиклип) на прослушку "enterFrame", плюс Timer, плюс мног чего вкусного..

Antares
08.01.2006, 21:06
Это понятно, весь старый функционал сохранен. "Библиотека" только уже совсем иначе реализована и swc имеют уже иной смысл (как jar в Java).

D12
08.01.2006, 23:15
только надо подписать объект (причем любой, а не только мувиклип) на прослушку "enterFrame", плюс Timer, плюс мног чего вкусного..


Silin а можно поподробнее об этом , ну хотябы с маленьким примерчиком :rolleyes:

silin
08.01.2006, 23:32
если с маленьким
package {
import flash.display.MovieClip;
import flash.events.*;
public class testMove extends MovieClip {
public function testMove() {
var mc:MovieClip=new MovieClip();//мувик
mc.graphics.beginFill(0);//рисуем
mc.graphics.drawCircle(0,0,20);
addChild(mc);//аттачим к родителю
mc.addEventListener("enterFrame",onEnterFrame);//регисрируем листенер
}
private function onEnterFrame(e:Event){//она же и есть листенер
e.target.x+=1;
}

}
}
если с не очень маленьким, то сюда (http://www.flasher.ru/forum/showthread.php?t=72041) или сюда (http://silin.fatal.ru/AS3/index.html)

Antares
08.01.2006, 23:34
Каждый объект во Flex -- компонент с id. Ему так же, как ты делал во Flash, можно прибить событие. У него тот же самый UIEventDispatcher.

D12
08.01.2006, 23:43
Спасибо :)

yana_flash
03.05.2007, 16:02
Попробовала воспользоваться примером. addChild(mc) выдает сообщение об ошибке:
TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::MovieClip@515c5b1 to mx.core.IUIComponent.

Что в данном случае делается не так?

etc
03.05.2007, 16:13
Аттачить можно только наследников UIComponent. Ну или на Canvas.

yana_flash
03.05.2007, 17:00
Увы, не вышло:

...
<mx:Canvas x="10" y="16" width="500" height="361" id="canvasMap" borderStyle="solid">
<mx:Image x="10" y="10" width="478" height="339" id="imgMap"/>
</mx:Canvas>
...
public var mcMap:MovieClip;
...
mcMap=new MovieClip();
mcMap.graphics.beginFill(0);//рисуем
mcMap.graphics.drawCircle(0,0,20);
canvasMap.addChild(mcMap);//аттачим к родителю


При запуске canvasMap.addChild(mcMap) выдает:
TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::MovieClip@4fab5b1 to mx.core.IUIComponent.

etc
03.05.2007, 17:36
http://flash-ripper.com/archives/001659.php

yana_flash
03.05.2007, 20:53
Спасибо, изучаю :)

yana_flash
04.05.2007, 13:59
Спасибо, спрайт удалось приаттачить. Но когда попыталась загрузить в него (точнее, в позже приаттачиваемый мувиклип) картинку, при запуске происходит ошибка:
TypeError: Error #1006: loadMovie is not a function.

public var sprMap:UISprite;
...
sprMap=new UISprite();
var mySprite:Sprite = new Sprite();
var mcMap:MovieClip = new MovieClip();
mcMap.graphics.beginFill(0);//рисуем
mcMap.graphics.drawCircle(0,0,20);
mcMap.loadMovie("http://myserver/flash/map.jpg");
sprMap.addChild(mcMap);//аттачим к родителю
sprMap.setSprite(mySprite);

Без строки mcMap.loadMovie("http://myserver/flash/map.jpg") все нормально работает.

Как во флексе загрузить картинку в MovieClip?

etc
04.05.2007, 14:14
Метода loadMovie в AS3 нет. Читайте справку.