ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   AIR for PC
     Drag時のイメージ透明度について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
asku
投稿日時: 2012-4-10 16:17
お馴染みさん
登録日: 2008-4-23
居住地: 岐阜県岐阜市
投稿: 18
Drag時のイメージ透明度について
いつも大変参考にさせていただいております。

どうしても解決できずに困ってしまいご質問させていただきたいのですが

今回、AIRアプリケーションにてDrag&Dropを実装しているのですが、
ドラッグしたときのイメージプロキシがある一定の大きさを超えると勝手に半透明になってしますのですが、
どのようにしたら半透明にならないように出来ますでしょうか。

環境
Windows 7
Flex SDK 4.x
AIR 3.x

よろしくお願いします。


var imageProxy:UIComponent = new UIComponent();
imageProxy.width=dragTile.width;
imageProxy.height=dragTile.height;
				
var bitmap:Bitmap = new Bitmap( 
ImageSnapshot.captureBitmapData( dragTile ));
bitmap.alpha=1;
		
imageProxy.addChild(bitmap);

var ds:DragSource = new DragSource();
ds.addData(dragTile, "GridTile");

DragManager.doDrag(dragTile, ds, e,imageProxy,0,0,1);


画像内の赤字と赤矢印は説明用です。

ドラッグする対象幅が短いときは正常

http://www.floatnet.com/sample/flex/image/sample1.jpg

ドラッグする対象幅が長いと変な感じになる

http://www.floatnet.com/sample/flex/image/sample2.jpg
arkw
投稿日時: 2012-4-11 12:36
管理人
登録日: 2006-1-10
居住地:
投稿: 167
Re: Drag時のイメージ透明度について
標準のドラッグ機能だとDragProxyの右の方は透明になりません。
お使いのコンポーネントにある機能だと思います。


<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    
    <fx:Script>
        <![CDATA[
            import mx.core.DragSource;
            import mx.core.UIComponent;
            import mx.graphics.ImageSnapshot;
            import mx.managers.DragManager;
            protected function button1_mouseDownHandler(event:MouseEvent):void
            {
                var imageProxy:UIComponent = new UIComponent();
                imageProxy.width=test.width;
                imageProxy.height=test.height;
                
                var bitmap:Bitmap = new Bitmap( 
                    ImageSnapshot.captureBitmapData( test ));
                bitmap.alpha=1;
                
                imageProxy.addChild(bitmap);
                
                var ds:DragSource = new DragSource();
                ds.addData(test, "GridTile");
                
                DragManager.doDrag(test, ds, event,imageProxy,0,0,1);
            }
        ]]>
    </fx:Script>
    <s:Button id="test" mouseDown="button1_mouseDownHandler(event)"
              label="sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"/>

</s:Application>


----------------
AKABANA / クラスメソッド株式会社 プリンシパル

fxug@akabana.net
http://www.akabana.net/
Flex/AIR 技術トレーニング 承り中

asku
投稿日時: 2012-4-12 15:05
お馴染みさん
登録日: 2008-4-23
居住地: 岐阜県岐阜市
投稿: 18
Re: Drag時のイメージ透明度について
返信ありがとうございます。

お教えいただきましたソースでテストしてみたのですが
やはり私の環境では透明になってしまいます・・・。

FLEXアプリだと大丈夫なんですが、AIRにすると
このようになってしまいます。

AIRが原因なんでしょうか。

http://www.floatnet.com/sample/flex/image/sample3.jpg

いろいろ調べて一応分かっていることは
コンポーネントのサイズが301px以上の場合になるようで
、何かの初期値を越えているのかなと勝手に想像していますが、いまだに分からないです。

http://www.floatnet.com/sample/flex/image/sample4.jpg

http://www.floatnet.com/sample/flex/image/sample5.jpg
arkw
投稿日時: 2012-4-19 17:11
管理人
登録日: 2006-1-10
居住地:
投稿: 167
Re: Drag時のイメージ透明度について
環境
Windows 7
Flex SDK 4.x
AIR 3.x

xのところを細かく書いてください。


----------------
AKABANA / クラスメソッド株式会社 プリンシパル

fxug@akabana.net
http://www.akabana.net/
Flex/AIR 技術トレーニング 承り中

asku
投稿日時: 2012-4-19 23:01
お馴染みさん
登録日: 2008-4-23
居住地: 岐阜県岐阜市
投稿: 18
Re: Drag時のイメージ透明度について
返信ありがとうございます。
環境を適当に書いてしまい、すみません。

開発環境
Windows 7
Flex SDK 4.6.0
AIR 3.2.0.2070

透明になることを確認した環境
Windows 7, VISTA, XP
AIR 3以降  3.0  3.1  3.2

確認しているのは上記の通りでSDKに関しては
SDK4.0以上のいろいろなバージョンでコンパイルして
試しましたが状況は変わりませんでした。

その後いろいろと試してみて、
Mac OS Xでは正常に動作して透明にはなりませんでしたので、
WindowsのOS自体が原因なのかと疑っているところで行き詰っているところです・・・。

良い解決方法などありましたら宜しくお願いします。
arkw
投稿日時: 2012-4-27 11:14
管理人
登録日: 2006-1-10
居住地:
投稿: 167
Re: Drag時のイメージ透明度について
WindowsのOS自体が原因とは思えません。
OSの設定ではないでしょうか?

Windows 7ではならない現象もあります。
私の環境ではなりません



----------------
AKABANA / クラスメソッド株式会社 プリンシパル

fxug@akabana.net
http://www.akabana.net/
Flex/AIR 技術トレーニング 承り中

asku
投稿日時: 2012-4-27 13:47
お馴染みさん
登録日: 2008-4-23
居住地: 岐阜県岐阜市
投稿: 18
Re: Drag時のイメージ透明度について
返信ありがとうございます。

>WindowsのOS自体が原因とは思えません。
>OSの設定ではないでしょうか?

ということは、やはりOSの問題ということですよね^^;

やはりOSの設定でどうにかなるということは、OSが
影響を及ぼしていると考えたほうがいいのでしょうか。
一応いろいろ調べたのですがそのような設定を見つけることが
出来なかったので完全にお手上げ状態です。

Windows7のOSを初期インストールしたばかりのPCでも実験してみましたが
やはり透明になってしまいました・・・。

解決策が見つかりそうもないので、DragManagerを使用するのをやめ、自前で組みなおしてみます。
arkw
投稿日時: 2012-4-29 14:21
管理人
登録日: 2006-1-10
居住地:
投稿: 167
Re: Drag時のイメージ透明度について
DragManagerはASでFlashの中をドラッグして処理しているので
自前でも同じようになるかと思います。

Flash内の処理なのでOSの影響を受けることはないので
DragManager.doDragを使うと再現しません。

NativeDragManager.doDragを使うとOSに依存するので再現しますね。



----------------
AKABANA / クラスメソッド株式会社 プリンシパル

fxug@akabana.net
http://www.akabana.net/
Flex/AIR 技術トレーニング 承り中

arkw
投稿日時: 2012-4-29 15:26
管理人
登録日: 2006-1-10
居住地:
投稿: 167
Re: Drag時のイメージ透明度について

WindowedApplicationにuseNativeDragManagerプロパティがあります。
AIR 3.0から追加されています。

WindowsApplicationを使うとこれが標準でtureなので
DragManager.dragを呼び出すと
NativeDragManager.dragを使うことになります。

AIRの外にドラッグしないのであればuseNativeDragManager=falseにすればいいかと思います。


----------------
AKABANA / クラスメソッド株式会社 プリンシパル

fxug@akabana.net
http://www.akabana.net/
Flex/AIR 技術トレーニング 承り中

asku
投稿日時: 2012-5-1 11:41
お馴染みさん
登録日: 2008-4-23
居住地: 岐阜県岐阜市
投稿: 18
Re: Drag時のイメージ透明度について
返信ありがとうございます。

ご教授いただきました通りに、行ったところ無事に解決いたしました!!

本当にありがとうございます。

NativeDragManagerはだめだと分かっていたのですが、
ソースにはDragManagerと書いていたのでまったく分かりませんでした。
そんなプロパティがあるとは知りませんでした。

助かりました
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を